SQL-предложение, полученное из таблицы, имеет переменную в предложении, не может быть выполнено - PullRequest
0 голосов
/ 03 октября 2018

У меня есть таблица, за исключением некоторого предложения sql.

Например:

value:`select * from table where aa='".$test."'`

 <?php
      $test="bbb";
      $strsql=$row["sql"]; 
      echo $strsql;
      //result is :select * from table where aa='".$test."'
 ?>

, но я хочу: select * from table where aa='bbb'

помогите мне, спасибо !!

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вы должны использовать функцию разнесения, такую ​​как

$test="bbb";
$data=explode("=",$strsql);
$new_query=$data[0]."='$test'"

Вы можете использовать функцию eval(), но я полагаю, что вы новый кодер, а функция eval() очень опасна.

Согласно руководству по PHP

Внимание. Языковая конструкция eval () очень опасна, поскольку она позволяет выполнять произвольный код PHP.Таким образом, его использование не рекомендуется.Если вы тщательно проверили, что нет другого выбора, кроме как использовать эту конструкцию, обратите особое внимание на то, чтобы не передавать в нее данные, предоставленные пользователем, без надлежащей проверки их заранее.

0 голосов
/ 03 октября 2018

Вы можете сделать это, используя eval : (который оценивает строку как код PHP)

$test = "bbb";
$strsql = 'select * from table where aa=\'".$test."\''; // as $row["sql"];
eval("\$strsql = \"$strsql\";");
echo $strsql;
...