我有一个问题,这个查询出于某些原因:更新MySQL的声明从笨
$this->db->query("UPDATE schools SET name = '$name', pop = '$pop', details = '$details', numteachers = '$numteachers', recess = '$recess', equipment = '$equipment' WHERE id = '$schoolid'");
echo $this->db->affected_rows();
出于某种原因affected_rows打印0,但有与查询没有错误。当我查看数据库时,行ID没有受到影响。我逃避所有的这样的查询之前的输入:
$name = mysql_real_escape_string($_POST["schoolname"]);
与所有的投入,与实际输入的例子查询看起来像在此之前它的执行:
UPDATE schools SET name = 'Jefferson County Public School', pop = '2,345', details = 'Lorem Ipsum is simply dummy text of the and typesetting industry.', numteachers = '2 Te', recess = '40 mins', equipment = 'Gym, Climbing Frame, Goal Posts, Track' WHERE id = '1'
所有列都已经在行ID 1下填充,这只是新的数据。 id是一个int,主键和auto_incrementing。
任何意见将有所帮助,谢谢!
如果手动执行该查询会发生什么? – mway 2010-10-21 17:40:22
嗯好主意,我试过了,在Mac上使用Sequel Pro,它说没有错误。但后来有0行受到影响。 – 2010-10-21 17:44:37
您确定生成的查询实际上是生成的,还是只插入了一些数据?检查以确保您的ID实际上是要更新的行的ID ......它可以为空或0 – mway 2010-10-21 17:46:36