怎样判断insert是否成功呢? $sql='insert ....';$result=mysql_query($sql);if($result) echo '成功';else echo '失败'; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $sql = "insert into ......";if($db->query($sql)){ echo "success!";}else{ echo "failed!";} $dbh = mysql_connect('localhost','username','password'); mysql_select_db('database'); $sql="insert into .......";$res=mysql_query($sql,$dbh);$err = mysql_error();if($err){ echo "插入失败"; }else{ echo "成功";} 楼主你可以用mysql_affected_rows()说明int mysql_affected_rows ( [resource link_identifier])mysql_affected_rows() 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。如果连接句柄没有指定, 则默认使用最近一次由 mysql_connect() 函数打开的连接句柄。 注: 如果你使用事务处理(transactions),你需要在 INSERT,UPDATE 或 DELETE 查询后调用 mysql_affected_rows() 函数,而不是在 commit 命令之后。 如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询, 在表中所有的记录都会被删除,但该函数返回值为 0。 注: 当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。 这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数。 只有真正被修改的记录数才会被返回。 可是我有好多条insert语句,不可能用if else全都套起来吧,那怎样实现比方说当执行第6个insert的时候出现错误了,往后的insert都不执行了,并且最好能将前5个insert的内容删除,保证数据的一致性. mysql不支持事物,如果用oracle就可以做的到 个人觉得,楼主的想法应该改一下1 在任何情况下,都没有可能,也不需要判断所有的语句执行成功(不单指insert)2 我们能保证的是---a 自己写的这个sql语句是否正确,b 代入到sql语句中的内容是否准确3 所以,应该做的是,保证insert语句能够准确正常的运行,如果你在insert 这一句上面的都是对的,insert语句本身也没问题,就应该相信是成功了.上面所有写的方法,都只是检测这一句insert本身是不是正确,对了就是对了,以后就不需要检测了.------------------------比方说当执行第6个insert的时候出现错误了,****那就让它不出错嘛,加强前期检测工作,等要insert不了了再查,好象晚了点吧?个人意见,供楼主参考 楼主:正确的 INSERT 语句在什么情况下会出错??还有最好用事务表(Mysql4.0).这样可以保证第六条出错时回滚. insert 语句的正确性我已经验证过了,已经确保没有错误,本来一直没有想过要加判断,可是碰巧想到了万一在那么多的insert过程中,mysql服务器发生间歇性故障的话,那不是连哪条insert没有成功都不知道吗?所以才会有这样的想法,呵呵.蛮喜欢这里大家讨论的气氛的,大家共同进步嘛 很长见识我从来都是加强前期的坚持从没想过使用事务请问 sunon(※NN),事务表的一些细节大家这么讨论,受益菲浅啊 $sql="insert into ......."; $res=mysql_query($sql);if($res)echo"success!";else ccho"failed!"; insert 语句的正确性我已经验证过了,已经确保没有错误,本来一直没有想过要加判断,可是碰巧想到了万一在那么多的insert过程中,mysql服务器发生间歇性故障的话,那不是连哪条insert没有成功都不知道吗?所以才会有这样的想法,呵呵.蛮喜欢这里大家讨论的气氛的,大家共同进步嘛--------------------------------------------锁定表就好了,事务表减慢查询速度 to mistjin(9527@孙燕姿资深粉丝) 请问锁定表是什么概念呢?能不能麻烦说的具体点?谢谢 $sql="insert into ......."; $res=mysql_query($sql);if($res)echo"已添加成功!";else echo"失败!"; 记得好像是用innoDB格式可以使用事务的吧 即便insert语句本身没有任何错误,但有许多不可预料问题发生,我觉得不论本身错误与否,这样的验证是必不可少的,保证你的程序的完整和严密! php数组问题 php实现两个页面间参数的调用(checkbox的value值的传递) 求助,Jquery提交php sql特殊字符录入问题 php无法插入数据到sql2005中 【急-求助】swfupload上传进度条一上来就是100%,然后再慢慢上传。 一时好奇,动态改变图片上文字的php程序怎么做的?给点源代码 很菜鸟的问题,如何配置php服务器 php页面无法正常显示 菜鸟求指点:Linux系统上建一个可界面查询的数据库,需要用到哪些技术? 求一段判断日期格式是否正确的javascript Linux 下有什么好的PHP编辑器 !
if($db->query($sql)){
echo "success!";
}
else{
echo "failed!";
}
mysql_select_db('database');
$sql="insert into .......";
$res=mysql_query($sql,$dbh);
$err = mysql_error();
if($err){
echo "插入失败";
}else{ echo "成功";
}
mysql_affected_rows()说明
int mysql_affected_rows ( [resource link_identifier])
mysql_affected_rows() 返回最近一次与 连接句柄 关联的 INSERT,UPDATE 或 DELETE 查询所影响的记录行数。如果连接句柄没有指定, 则默认使用最近一次由 mysql_connect() 函数打开的连接句柄。 注: 如果你使用事务处理(transactions),你需要在 INSERT,UPDATE 或 DELETE 查询后调用 mysql_affected_rows() 函数,而不是在 commit 命令之后。 如果最近一次操作是没有任何条件(WHERE)的 DELETE 查询, 在表中所有的记录都会被删除,但该函数返回值为 0。 注: 当使用 UPDATE 查询,MySQL 不会将原值和新值一样的列更新。 这样使得 mysql_affected_rows() 函数返回值不一定就是查询条件所符合的记录数。 只有真正被修改的记录数才会被返回。
1 在任何情况下,都没有可能,也不需要判断所有的语句执行成功(不单指insert)
2 我们能保证的是---a 自己写的这个sql语句是否正确,b 代入到sql语句中的内容是否准确
3 所以,应该做的是,保证insert语句能够准确正常的运行,如果你在insert 这一句上面的都是
对的,insert语句本身也没问题,就应该相信是成功了.上面所有写的方法,都只是检测这一句insert本身是不是正确,对了就是对了,以后就不需要检测
了.------------------------比方说当执行第6个insert的时候出现错误了,****那就让它不出错嘛,加强前期检测工作,等要insert不了了再查,好象晚了点吧?
个人意见,供楼主参考
$res=mysql_query($sql);
if($res)
echo"success!";
else
ccho"failed!";
--------------------------------------------
锁定表就好了,事务表减慢查询速度
谢谢
$res=mysql_query($sql);
if($res)
echo"已添加成功!";
else
echo"失败!";