0

アップロード画像を作成し、画像をアップロードフォルダに移動します。誰かがmysql_insert_id()が一意の ID (1、2、3、4、5 など) と画像拡張子 (jpg、gif、png) を挿入する画像をアップロードする場合、結果が次のようになる必要があります (1. jpg、2.gif、3.png、4.jpg、5.gif、6.png など……)

4

1 に答える 1

1

問題はこのコードにあると思います:

mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();
$image_file = $image_id.'.'.$extension;

$image_file作成される前にSQLで使用しているように見えます..代わりにこれを試してください:

$image_file = $image_id.'.'.$extension;
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();

えーと

あなたのコードをもう一度見てみると$image_file、SQL で使用するために設定している場所がまったくわかりません。回答を投稿した後、返された mysql_insert_id を使用していることに気付きました。混乱して申し訳ありません。

SQL で使用する前に生成する必要があると思い$image_fileます。また、返された mysql_insert_id を使用したい場合は、後で生成する必要があると思います。

$image_file = $_FILES['image']['name'];
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();

また

ファイルの名前を変更しているため、レコードを作成した後、データベースに保存されている画像の名前も更新する必要があります。

$image_file = $_FILES['image']['name'];
mysql_query("INSERT INTO users VALUES('', '$image_file')") or die (mysql_error());
$image_id = mysql_insert_id();
$image_file = $image_id . '.' . $extension;
move_uploaded_file($_FILES["image"]["tmp_name"], "upload/".$image_file);
mysql_query("UPDATE users SET image_column = '{$image_file}' WHERE id_column = {$image_id}") or die(mysql_error());

SQLステートメントで列名を使用していないため、代わりに独自の列を挿入する必要がある一般的な用語を使用しました。

于 2012-12-03T08:28:36.707 に答える