2

この SQL を使用する場合:

UPDATE formulare SET EV_id=59, EV_status=5 WHERE EV_id=57 AND ID_uziv=12;SELECT LAST_INSERT_ID();

0最後の挿入 ID として取得します。私はphpを使用しmysqli_insert_idていますが、ここに次のように書かれています:

The mysqli_insert_id() function returns the ID generated by a query 
on a table with a column having the AUTO_INCREMENT attribute. 
If the last query wasn't an INSERT or UPDATE statement 
or if the modified table does not have a column with the AUTO_INCREMENT attribute, 
this function will return zero. 

私のテーブルformualreにはauto increment列があるので、どこに問題があるのか​​ わかりません

4

3 に答える 3

2

ドキュメントから:

前のクエリが成功した場合に生成された AUTO_INCREMENT カラムの ID。前のクエリが AUTO_INCREMENT 値を生成しない場合は 0、 MySQL 接続が確立されていない場合は FALSE。

更新によって新しいレコードが作成されなかったため、AUTO_INCREMENT 値は生成されませんでした。

于 2013-08-30T10:39:14.830 に答える
1

UPDATE クエリは既存のレコードを更新しますが、新しい ID は返しません。

mysqli_insert_id retrieves the ID generated for an AUTO_INCREMENT column by the        
previous query (usually INSERT).

INSERT クエリがありませんでした。そのため、UPDATE クエリを実行した後に ID を取得できません。

詳細については、mysql_insert_idを参照してください。

于 2013-08-30T10:45:52.177 に答える