SQL语句从表中获取,语句中有变量,无法执行

时间:2018-10-03 06:28:02

标签: php mysql eval

我有一张桌子,上面有一些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 :(得分:1)

您可以使用eval :(将字符串作为PHP代码求值)来实现

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

答案 1 :(得分:0)

您应该使用爆炸功能,例如

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

您可以使用eval()函数,但是我想您是新编码员,eval()函数非常危险。

根据PHP手册

  

警告eval()语言构造非常危险,因为它会   允许执行任意PHP代码。因此不鼓励使用它。   如果您已仔细验证,除了   使用此构造,请特别注意不要让任何用户通过   在没有事先正确验证的情况下向其中提供了数据。