Php SQL语句从表中获取,语句中有变量,无法执行
我有一个表,保存了一些sql语句 例如:Php SQL语句从表中获取,语句中有变量,无法执行,php,mysql,eval,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."' ?> 但我想:从aa='bbb'所在的表中选择* 帮帮我 谢谢 您可以使用
value:`select * from table where aa='".$test."'`
<?php
$test="bbb";
$strsql=$row["sql"];
echo $strsql;
//result is :select * from table where aa='".$test."'
?>
但我想:从aa='bbb'所在的表中选择*
帮帮我
谢谢 您可以使用:作为PHP代码计算字符串
$test = "bbb";
$strsql = 'select * from table where aa=\'".$test."\''; // as $row["sql"];
eval("\$strsql = \"$strsql\";");
echo $strsql;
你应该使用像这样的分解函数
$test="bbb";
$data=explode("=",$strsql);
$new_query=$data[0]."='$test'"
你们可以使用eval函数,但我想你们是新的程序员,eval函数是非常危险的
根据PHP手册
注意:eval语言结构非常危险,因为它
允许执行任意PHP代码。因此,不鼓励使用它。
如果您已仔细核实,除了
使用此结构时,请特别注意不要通过任何用户
在未事先正确验证的情况下向其提供数据
为什么要使用爆炸?而不是评估?我相信它可以在没有爆炸的情况下完成,eval更优雅…@DavidWinder我同意你的看法。我认为james是新的程序员,我知道eval非常危险,我认为只有好的程序员才应该使用这个函数。根据php手册的警告,eval语言结构非常危险,因为它允许执行任意php代码。因此,不鼓励使用它。如果您已经仔细验证了除了使用此构造之外没有其他选择,请特别注意,在未事先正确验证的情况下,不要将任何用户提供的数据传递到该构造中。注意使用eval,特别是在接受未知数据时,因为它对各种注射都是开放的。请添加更多细节和/或给出更多示例来解释您的问题。