SQL语句从表中获取,在句子中有变量,不能执行

问题描述 投票:2回答:2

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

帮帮我谢谢!!

php mysql eval
2个回答
0
投票

你应该使用爆炸功能

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

你可以使用eval()功能,但我想你是新的编码器和eval()功能是非常危险的。

根据PHP手册

注意eval()语言结构非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外没有其他选项,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它。


1
投票

您可以使用eval执行此操作:(将字符串计算为PHP代码)

$test = "bbb";
$strsql = 'select * from table where aa=\'".$test."\''; // as $row["sql"];
eval("\$strsql = \"$strsql\";");
echo $strsql;
© www.soinside.com 2019 - 2024. All rights reserved.