-1

送信時にSQL構文にエラーがあることを通知するphpフォームがありますが、同じフォームとphpが同じプロバイダーを介してホストされている別のサイトで動作するため、空白になりますが、別のサーバーで動作します:

これがphp(疑わしい問題領域)の一部です:

    $sql = mysql_query("INSERT INTO members (name, email, password, streetadd, city, state, zip, phone, ext)
VALUES('$name', '$email', '$password', '$streetadd', '$city', '$state', '$zip', '$phone', '$ext')")
or die (mysql_error());
$id = mysql_insert_id();

mkdir("members/$id", 0755);

さらにコードが必要な場合はお知らせください。誰かが私がどこで間違っているのかを教えてくれれば幸いです。おそらく私の知識は古くなり、mysqlとphpを再学習する必要がありますが、これはうまくいくはずです。

4

2 に答える 2

3

'$ext'の後の最後にparantesesがありません:

  $sql = mysql_query("INSERT INTO members (name, email, password, streetadd, city, state, zip, phone, ext)
VALUES('$name', '$email', '$password', '$streetadd', '$city', '$state', '$zip', '$phone', '$ext')")
or die (mysql_error());
$id = mysql_insert_id();

mkdir("members/$id", 0755);

もう1つのことは、これらのフィールドの1つをintまたはその他の数値にすることができ、それらの引用符が問題になる可能性があることです。さらにヘルプが必要な場合は、テーブルのシェマを投稿してください。クエリは本当に問題ないようです。

于 2012-10-30T14:30:56.043 に答える
0

ここから問題が発生したかどうかはわかりませんが、クエリが不完全であるため、括弧を閉じるのを忘れました。

これを試して:

 $sql = mysql_query("INSERT INTO members (name, email, password, streetadd, city, state, zip, phone, ext)
VALUES('$name', '$email', '$password', '$streetadd', '$city', '$state', '$zip', '$phone', '$ext');")
or die (mysql_error());

しかし、人々がコメントで言ったように、あなたはこの古い方法を使うべきではありません。PDOは、プリペアドステートメントの方が優れています(より安全です)。または、少なくともmysqliを使用します。

于 2012-10-30T14:32:03.967 に答える