2012-04-24 46 views
0

我使用codeigniter 2.1.0和mysqli dbdriver。 我有下面的查询,并想知道什么时候是成功的如何知道是否使用mysqli dbdriver删除行

$query = $this->db->query("delete FROM abc WHERE id IN (" . $IdList . ")"); 

我怎么能知道,如果相关行被删除?

+0

要小心'$ IdList'已被转义;你可能想阅读[SQL注入](http://php.net/manual/en/security.database.sql-injection.php)。 – eggyal 2012-04-24 11:32:33

+0

嗨eggyal问题是,我怎么知道该行是否已被删除,我曾试过你在一个地方的选项,查询已运行,​​但我不知道有什么问题,但该行并未从MySQL的 – bleu 2012-04-30 10:38:26

回答

1

CodeIgniter User Guide

query()函数返回一个数据库结果对象当“读”式的查询运行,您可以用它来show your results。当“写入”类型的查询运行时,取决于成功或失败,它仅返回TRUEFALSE

因此您$query变量将是失败的成功TRUEFALSE

2

$this->db->affected_rows()是你在找什么。您应该能够将该结果与预计的已删除行数进行比较。

做 “写” 类型的查询(INSERT,UPDATE,等)时,也引用了USER GUIDE

显示受影响的行数。

注意:在MySQL中,“DELETE FROM TABLE”返回0个受影响的行。 数据库类有一个小黑客,它允许它返回正确的 数量的受影响的行。默认情况下,该攻击已启用,但可以在数据库驱动程序文件中关闭 。