php 执行 变量 sql,不能执行的sql变量,改用显示结果为值,就可执行,求解。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

下面是一个完整的程序,意图是用表aa的数据对表bb进行更新,问题集中在最后四行,按编号顺序看注解的问题,`如有兴趣可亲自试试。

function makeTbl($name){

$sql="drop table if exists ".$name;

mysql_query($sql);

$sql="CREATE TABLE ".$name."(realName VARCHAR(20), sex char(1),idCard VARCHAR(20)) default charset=gbk";

mysql_query($sql);

}

maketbl("aa");

maketbl("bb");

$sql="insert into aa (realName,sex,idCard) values ('张三丰','男','123456')";

mysql_query($sql);

$sql="insert into bb (realName) values ('张三丰')";

mysql_query($sql); $sql="select * from aa ";

$query=mysql_query($sql);

while ($rs=mysql_fetch_array($query))

{

$flag=0;

$sql="UPDATE bb SET ";

if (!(!isset($rs['userName']) || empty($rs['userName'])))

{

$username="userName='".$rs['userName']."',";

$sql=$sql.$username;

$flag=1;

}

if (!(!isset($rs['sex']) || empty($rs['sex'])))

{

$sex="sex='".$rs['sex']."',";

$sql=$sql.$sex;

$flag=1;

}

if (!(!isset($rs['idCard']) || empty($rs['idCard'])))

{

$idCard="idCard='".$rs['idCard']."',";

$sql=$sql.$idCard;

$flag=1;

}

if ($flag==1){

$sql{strlen($sql)-1}='';

$sql=$sql." WHERE realName='".$rs['realName']."'"; // 1,这里完成sql语句的组合

//$sql="UPDATE bb SET sex='男',idCard='123456' WHERE realName='张三丰'"; 4,直接执行显示出来的语句,则表bb被更新。

mysql_query($sql); //2, 执行后,检查数据库,会发现表bb并未被更新

echo $sql; //3,把sql句显示出来

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值