1

以下の PHP コードを使用して、MySQL のテーブルから行を削除しようとしています。からの戻り値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 に答える