1

我正在尝试使用下面的 PHP 代码从 MySQL 中的表中删除一行。from的返回值为mysql_affected_rows()1。没有错误。但是,该行仍然存在于 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);

更新

我在最后添加了以下代码并解决了问题 -

mysql_query("commit", $connection);

感谢您的评论!

4

2 回答 2

1

如您的情况一样应用于 innodb 表。

mysql_query("BEGIN", $connection); 
// delete code
mysql_query("COMMIT", $connection);
于 2012-09-26T20:30:16.967 回答
0

在这种情况下,我通常做的是启用 general_log(设置 global general_log_file=general.log; 并设置 global general_log=1;)并查看那里的内容。

那么问题出在哪里就变得很明显了。

如果还不清楚发生了什么,您可以在 mysql 控制台上运行这些查询...

于 2012-09-28T07:12:41.277 回答