PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
2014-01-07 13:22
465 查看
【PDO对象操作数据库】
PDOstament对象执行execute()函数,只要是sql语句正确都是返回true。
问题:
想要PDO对象实现更改一条记录, 并修改是否成功要返回信息给用户。
上我的代码:
我错误的原因是:
把PDOstament对象执行execute()函数后返回的值误以为成修改成功或失败。其实执行execute函数,只要sql语句正确,返回值都是false,所以我这里所写的sql语句是正确的,但是在数据库中并没有此记录,它仍然是返回true,所以我就卡在这里了。
多次查看手册+百度无果,上群问其他人还真是一个好方法。
解决方法:
既然自己要返回一个是否修改成功的信息给用户,可以使用一个rowCount()函数统计被影响的行数$res,然后根据$res是否>0做判断就好了。
改后的代码:
PDOstament对象执行execute()函数,只要是sql语句正确都是返回true。
问题:
想要PDO对象实现更改一条记录, 并修改是否成功要返回信息给用户。
上我的代码:
//PDO对象实现更改一条记录 $sql4= "update xs_user set `passwd`=md5('123') where `username`=? and `sex`=?"; echo $sql4; $stmt = $pdo->prepare($sql4); $username = "bright009"; $sex = "女"; //一种是直接写在execute的参数array()带进去,一种是通过绑定参数法 $stmt->bindParam(1, $username); $stmt->bindParam(2, $sex); $flag4 = $stmt->execute(); //当返回值为真时,就表示修改成功 if($flag){ //array('bright006','男')当查询的条件多个时,直接按序写在array数组里面即可 $data = $stmt->fetch(); $smarty->assign("flag","ok"); }else{ $smarty->assign("flag","fail"); } $smarty -> display("test.tpl");
我错误的原因是:
把PDOstament对象执行execute()函数后返回的值误以为成修改成功或失败。其实执行execute函数,只要sql语句正确,返回值都是false,所以我这里所写的sql语句是正确的,但是在数据库中并没有此记录,它仍然是返回true,所以我就卡在这里了。
多次查看手册+百度无果,上群问其他人还真是一个好方法。
解决方法:
既然自己要返回一个是否修改成功的信息给用户,可以使用一个rowCount()函数统计被影响的行数$res,然后根据$res是否>0做判断就好了。
改后的代码:
//PDO对象实现更改一条记录 $sql4= "update xs_user set `passwd`=md5('123') where `username`=? and `sex`=?"; echo $sql4; $stmt = $pdo->prepare($sql4); $username = "bright009"; $sex = "女"; //一种是直接写在execute的参数array()带进去,一种是通过绑定参数法 $stmt->bindParam(1, $username); $stmt->bindParam(2, $sex); $flag4 = $stmt->execute(); $res = $stmt->rowCount(); if($res>0){ //array('bright006','男')当查询的条件多个时,直接按序写在array数组里面即可 $data = $stmt->fetch(); $smarty->assign("flag","ok"); }else{ $smarty->assign("flag","fail"); } $smarty -> display("test.tpl");
相关文章推荐
- PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
- PDOstament对象执行execute()函数,只要是sql语句正确都是返回true
- 测试ExecuteSQL()函数~ 只要SQLCE语句正确那么就返回TRUE
- PHP PDO->exec() 执行无返回结果集的 SQL 语句
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。(ZT)
- EF5中 执行 sql语句使用Database.ExecuteSqlCommand 返回影响的行数 ; EF5执行sql查询语句 Database.SqlQuery 带返回值
- 使用PreparedStatement的execute方法执行sql插入语句,执行成功,但是返回结果却为false
- asp利用Parameters对象,实现防止sql注入,执行sql语句并返回变量值
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息
- @@ERROR @@ROWCOUNT 返回的都是上一条SQL 语句后的执行信息。
- c#存储过程,返回记录集和执行sql语句
- asp在线执行sql语句的函数
- hibernate查询SQL语句返回自定义实体对象
- 一次ORA-4030问题诊断及解决【解决思路不错,说明了对象的统计信息与优化器的优化操作(即选择执行一个SQL语句在该优化参数环境下最佳的执行计划)间的关系】
- JDBCTM中Statement接口提供的execute、executeQuery和executeUpdate之间的区别 Statement 接口提供了三种执行 SQL 语句的方法:
- 关于mysql 执行批量的sql 语句问题:&allowMultiQueries=true