привет всем, у меня такая проблема при выполнении etogo
$posts4 = null;
if($_POST['hero']) {
//var_dump($r);
$r = $_POST['hero4'];
$query = ' SELECT * FROM apranq_test WHERE type = "մոտորներ" AND param_2 = '$r' ' ;
//var_dump($query);
$select_op = mysqli_query($conn,$query);
$posts3 = mysqli_fetch_all($select_op, MYSQLI_ASSOC);
$posts4 = array_reverse($posts3);
//print_r($posts3);
//echo $posts3;
},
кода пишет syntax error, unexpected '$r' (T_VARIABLE) in 24 не мог найти проблему
Вставлять переменную в строку можно только если строка обрамлена двойными кавычками. В одинарных если написать echo '$r' то и выведется $r. Поэтому единственный вариант вставить переменную в строку с одинарными кавычками: закрыть строку кавычкой, сконкатинировать переменную, открыть строку кавычкой и добавить остальную часть не забыв закрыть снова.
Разница в строках: http://php.net/manual/ru/language.types.string.php
Примеры:
$myVar = 'Hello world!';
// строка с одинарными кавычками
$singleQuoteString = 'Привет мир по английски: '. $myVar .' Вот так!';
// строка с двойными кавычками
$doubleQuoteString = "Привет мир по английски: $myVar Вот так!";
// строка с двойными кавычками2 - для сложных переменных
$doubleQuoteString = "Привет мир по английски: {$myVar} Вот так!";
Если строка обрамлена в одинарные кавычки, то чтобы внутри описать еще кавычки — надо писать либо двойные ", либо экранировать одинарные \'
$myVar = 'Hello world!';
// строка с одинарными кавычками
$singleQuoteString = 'Я печатаю строку "'. $myVar .'"';
// строка с одинарными кавычками 2 (трудночитаемый вариант)
$doubleQuoteString = 'Я печатаю строку \''. $myVar .'\'';
Двойных кавычек касается то же правило, что одинарные, только наоборот
$myVar = 'Hello world!';
// строка с двойными кавычками
$doubleQuoteString = "Я печатаю строку '$myVar'";
// строка с двойными кавычками 2 (трудночитаемый вариант)
$doubleQuoteString = "Я печатаю строку \"$myVar\"";
Чтобы не мучиться с подстановкой переменных в строку запроса (и не только поэтому) - следует использовать подготовленные запросы: http://php.net/manual/ru/mysqli.quickstart.prepared-statements.php | Защита от SQL иньекций в php
Вот так нехватает конкатинации и экранирования.
$query = ' SELECT * FROM apranq_test WHERE type = "մոտորներ" AND param_2 = \'' . $r . '\'';
Но так лучше не делать как уже писали http://php.net/manual/ru/mysqli-stmt.bind-param.php
А так?
$query = " SELECT * FROM apranq_test WHERE type = 'մոտորներ' AND param_2 = '$r' ";
$query = ' SELECT * FROM apranq_test WHERE type = "մոտորներ" AND param_2 = " '.$r.' " ' ;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости