openwrt wpad:mysql中存储了sql语语,php怎么输出?

来源:百度文库 编辑:神马品牌网 时间:2024/05/06 04:31:06
如果有一个段(varchar数据类型)中存储了一段sql语句:
select * from table where id=$id
当在我php页面中输出此字段内容时显示:
select * from table where id=$id
而php页面中的变量$id是一个具体数值,比如1
我想达到输出效果是
select * from table where id=1请问应该怎么办?

一楼的答案是正确的。第一句在单引号之间的变量当字符串处理的。我给个稍微完整的例子:

<?
/*
数据库结构:

CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`test` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`),
)

INSERT INTO `test` VALUES (1, 'select * from test where id=$id);
INSERT INTO `test` VALUES (2, 'test user');
INSERT INTO `test` VALUES (3, 'test3333');
INSERT INTO `test` VALUES (4, 'test5555');

*/

// 数据库连接
mysql_connect("localhost","root","123");
mysql_select_db("account");

$sql="select * from test where id=1";
$res=mysql_query($sql);
$row=mysql_fetch_array($res);

// regist_global=off
$id=$_GET["id"];

// 第二次数据库语句由 id=1 的记录得到,即
$sql2=$row["test"];

// 用eval执行赋值
eval("\$sql_final=\"$sql2\";");
$res2=mysql_query($sql_final);
$row2=mysql_fetch_array($res2);

echo $row2["test"];

// 输出 test 3333
?>

前面加一个id=1不就行了?!

//原SQL
$sql='select * from table where id=$id';
//ID赋值
$id=1;

//执行语句
eval("\$str = \"$sql\";");

echo $str;//打印结果

//结果
/*
select * from table where id=1
*/

//明白了吧

上面的这位兄台说的办法行不通的
你没有理解他说得意思。
他是的意思是
select * from table where id=$id
这段代码是储存在数据库中的,换句话说,
这一段代码都是字符创类型,也就是说$id也是字符串
所以你说的办法是不可行的。
这个问题我前段时间也碰到了,一直想不出解决的办法。最后是用一个三维数组来解决的,办法很笨,这里就不说了,我相信一定会有好的办法的。希望大家帮关注一下,偶也在等待答案