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

dfty9e19  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(318)

我有一个表保存一些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' 帮帮我谢谢!!

a2mppw5e

a2mppw5e1#

你应该使用像这样的分解函数

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

你可以用 eval() 但我想你是新的程序员 eval() 功能非常危险。
根据php手册
注意eval()语言构造非常危险,因为它允许执行任意php代码。因此不鼓励使用。如果您已经仔细验证了除了使用此构造之外没有其他选择,请特别注意,在没有事先正确验证的情况下,不要将任何用户提供的数据传递到该构造中。

3qpi33ja

3qpi33ja2#

您可以使用eval:(将字符串作为php代码进行求值)

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

相关问题