0

存在しない可能性のある行のテーブルを更新しています。存在しない場合は、挿入する必要があります。最初は、更新ステートメントからの負の戻り値に基づいて挿入を行う必要があることを知ることを計画していましたが、負のものは何も返されません。

更新が何も行わなかったことをどのように知ることができますか? 何かあるかどうかを確認する別のクエリを実行しますか? それとも以前のクエリですか?

ありがとう!

4

2 に答える 2

5

http://php.net/manual/en/function.mysql-affected-rows.phpを使用

link_identifier に関連付けられた最後の INSERT、UPDATE、REPLACE、または DELETE クエリによって影響を受けた行の数を取得します。

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');

/* this should return the correct numbers of deleted records */
mysql_query('DELETE FROM mytable WHERE id < 10');
printf("Records deleted: %d\n", mysql_affected_rows());

/* with a where clause that is never true, it should return 0 */
mysql_query('DELETE FROM mytable WHERE 0');
printf("Records deleted: %d\n", mysql_affected_rows());
?>

(はずっと前に廃止されました) のmysqli代わりに使用している場合、それは.mysqlmysqlmysqli_affected_rows

于 2012-09-02T18:21:08.010 に答える
0

単純mysql_affected_rowsな方法は、テーブルが存在するかどうかに関係なく、テーブルの変化を見つける方法です。ただし、最適化されたコードでは、次のようなテーブルの存在を最初に確認することをお勧めします。

$status = mysql_query("select * from table_name");
if($status==false){
   echo "table don't exists";
}
else{
  //do your stuff here
}
于 2012-09-02T18:33:22.490 に答える