2012-09-26 103 views
1

我試圖從下面的PHP代碼中的MySQL表中刪除一行。 mysql_affected_rows()的返回值是1.沒有錯誤。但是,該行仍然在MySQL中退出。不知道我做錯了什麼。有什麼想法嗎?從MySQL中刪除行不起作用

$db = array('host'=>'127.0.0.1', 
     'user'=>'root', 
     'pass'=>'', 
     'name'=>'testdb'); 

// CONNECT TO THE MYSQL SERVER 
$connection = mysql_connect($db['host'], $db['user'], $db['pass']); 
if(!$connection){ 
    // HANDLE ERROR HERE 
    die('Unable to connect to MySql server : '.mysql_error($connection)); 
} 

// SELECT THE DATABASE SCHEMA 
if(!mysql_select_db($db['name'],$connection)){ 
    // HANDLE ERRORS HERE 
    die('Unable to connect to database : '.mysql_error($connection)); 
} 

$result = mysql_query("delete from photos where id=".$photo_id, $connection); 
echo mysql_affected_rows($connection); 

UPDATE

我下面的代碼添加到最後並解決了問題 -

mysql_query("commit", $connection); 

感謝您的意見!

+0

您應該切換到的mysqli:http://php.net/manual/en/book.mysqli .php – pivot

+2

$ photo_id從哪裏來? – JvdBerg

+0

是的,我的賭注是photo_id設置不正確 – dispake

回答

1

適用於innodb表,如你的情況。

mysql_query("BEGIN", $connection); 
// delete code 
mysql_query("COMMIT", $connection); 
0

我在此情況下,通常做的是使general_log(設置全局general_log_file = general.log;以及設置全局general_log = 1),並期待在那裏有什麼到達。

那麼它經常變得很明顯是什麼問題。

如果還不清楚是什麼你都可以選擇運行這些查詢mysql的控制檯上...