0

私は小さな問題を抱えていました... この挿入ステートメントをよく見てください。

これは私の接続です(ローカルサーバー上)

$c2d = mysqli_connect("localhost","root","","database name here")or die("connection not set" . mysqli_error);

これは私の挿入ステートメントであり、通常の方法です。

$insertUsrAccDetQS = "INSERT INTO user-tbl-here (usern, usrp, usere) VALUES ('x','y','z');" or die('no good on 001' . mysqli_error);

上記でこれを使用すると、この性質のエラーが発生します...

 Notice: Use of undefined constant mysqli_error - assumed 'mysqli_error'

どのような変更を加えても (約 1 時間)、常に何らかのエラーが発生するので、「方法を確認できるように、phpMyadmin アプリに手動で挿入させてください」と自分に言い聞かせました。 IT 部門は SQL INSERT コードを作成し、SQL をアプリにコピーして貼り付けて、何が起こるかを確認します。

私がそれをしたとき、phpMyadminが私に投げ返した返されたINSERTコードは

$insertUsrAccDetQS = "INSERT INTO `database name here`.`user-tbl-here` (`usern`, `usrp`, `usere`) VALUES ('$x','$y','$z');" or die('no good on 001' . mysqli_error);

案の定、PHP ドキュメントにコピー/貼り付けして実行すると、値がデータベースに入力されました。

私が見ることができる唯一の違いは、

1 - phpMyAdmin はデータベース名をクエリ文字列の残りの部分の前に置きます

2 - その文字列内のすべての名前/値に引用符を付けること。

しかし、接続宣言でデータベース名に名前を付け、上記の元のステートメントのような挿入ステートメントを使用しましたが、常に機能しました。

問題は...何が得られるのですか?私はまた、他の人々のINSERT声明/フォームを見るためにオンラインでよく見ました.

私はとても混乱しています。説明/リンク/ヒントなどをいただければ幸いです。

4

2 に答える 2

5

次のように、変数ではなく関数であるため、mysqli_error の最後に括弧を追加します。

or die('no good on 001' . mysqli_error() );
                                       ^----- HERE
于 2012-10-13T10:42:34.467 に答える
2

mysqli_errorは関数ですか?もしそうなら、それは括弧が必要です-mysqli_error()

于 2012-10-13T10:42:49.573 に答える