我有一個問題,這個查詢出於某些原因:更新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