0

3つのフィールドを持つテーブルimage_tbがありますid,images,link(idはauto auto_incrementです)。これは私の挿入コードです。

mysql_query("
insert into image_tb 
(images,link) 
select 
'".(max(id)+1).".jpeg','".$link."' 
from image_tb
");

それは戻ります:

Warning: max(): When only one parameter is given, it must be an array

変更する方法は?ありがとう。

4

4 に答える 4

3

関数を定義し、次のようなクエリで最後のIDを取得することをお勧めします。

于 2012-11-29T07:45:04.570 に答える
3

文字列を閉じるつもりはないと思います:

select '" ...

する必要があります

select MAX(id) + 1

それ以外の場合は、php 関数を使用しておりmax、それを行うつもりはまったくないと思います。

ちなみに、使ってはいけませんmysql_*PDOまたはを使用しmysqliます。

于 2012-11-29T07:45:55.617 に答える
0

あなたはこのようなことを考えましたか?

  1. 空のファイル名でデータを挿入します
  2. ファイル名が空のテーブルを更新し、ファイル名をCONCAT(id、 ".jpeg")などに設定します(CONCATは文字列を「追加」するために使用される関数です)。
于 2012-11-29T07:49:09.450 に答える
0

クエリ内で実行し、

mysql_query("
insert into image_tb (images,link) 
select CONCAT(COALESCE((SELECT MAX(ID) + 1 FROM image_tb),1), '.jpeg'),'".$link."' 
from image_tb
");

あなたのクエリは で脆弱です。SQL Injection以下の記事を読んで保護してください

于 2012-11-29T07:46:55.973 に答える