1

ちょっと私は現在、グローバル変数をテーブルに挿入しようとしています。私が渡す他の値も変数ですが、正しく送信されます。

これが私のクエリです。私のエラー処理は何もキャプチャしません

$result = mysql_query("INSERT INTO IPmanagement (userId, NameUsed, EmailUsed, IPStatus, Ip) VALUES ('" .$masterUserId . "', '" . $Entry['LeadName'] . "', '" . $Entry['LeadEmail'] . "', '0', '" . $ip . "')") or die(ErrorException("Function 6", "Error when processing the current lead. your data is unaffected and if the proccess continues please contact an Admin.", mysql_error(),$_SERVER['REMOTE_ADDR'], CurrentPath(), $masterUserId));

関数の前にグローバルに定義された私の変数

 $masterUserId = "1";

送信する前に変数をエコーし​​てみましたが、正しくエコーされますが、テーブルの値は 0 です。

これは、テーブルのセットアップ方法のスクリーンショットです。

ここに画像の説明を入力

クリックすると拡大画像が表示されます

何が起こっているのか、どんな考えでも。私はかなり困惑しており、この同じコードをさまざまな方法で記述しようとしましたが、それでも同じ問題が発生します。また、 $masterUserId は常に int 値になります

編集:また、変数は、変数とデータベースのログイン情報を含む.phpとは異なります。上位に収録されています。(関連性があるかどうかはわかりません)

4

3 に答える 3

1

挿入していないためIP STATUS。nullではない

データベーススキーマ

\

これをに設定nullするか、値を入力する必要があります。

このように使用するよりも関数でクエリを使用している場合

function (){
//than define 
 $globat $masterUserId;
// use the global defination 
// than use this variable with global value
}
于 2012-10-04T06:00:58.427 に答える
0

使用しないでくださいmysql_*mysqli_*それらをまたはに置き換えますPDO::

やってみましechomysql_query()か?これを行う。と置き換えmysql_query("...");die("...");phpMyAdminに入れ、実行してみてください。

そして、あなたのテーブルでは、それIP StatusNOT NULLです。そのため、例外がスローされる可能性があります。default表の値を使用してください。

そして、ええ、あなたはどのような結果を得るのmysql_error()ですか?

于 2012-10-04T06:02:31.310 に答える
0

クエリに ''' または "' があるのはなぜですか? PHP 関数sprintfでクエリをクリーンアップし、EntryID(Autoincrement) に NULL を使用しました

$query = sprintf("INSERT INTO IPmanagement (EntryID,userId, NameUsed, EmailUsed, IPStatus, Ip) VALUES (NULL,%s,%s,%s,'0',%s)",
$masterUserId , $Entry['LeadName'] , $Entry['LeadEmail'] , $ip ));
$result = mysql_query($query);

MySQLi または PDO も使用する必要があります。

于 2012-10-04T10:01:25.743 に答える