2017-11-13 1 views
0

SQL保護のためにpremadeステートメントを使用しています。 私のスクリプトは、ユーザーがユーザーテーブルに存在するかどうかをチェックし、それがすでに存在する場合、それが実行されます。ユーザーは、彼らが正常に動作し、ほぼ同一の挿入SQLクエリで存在していない致命的なエラー:更新クエリを使用して、オブジェクト以外のオブジェクトのbind_param()を呼び出す

$stmt = $Con->prepare("UPDATE `HA00`.`Users` SET `Unix` = ?,`4690` = ?,`LastIP` = ?,`LastLogin` = CURRENT_TIME() WHERE `Users`.`User` = ?;"); 

$stmt->bind_param('ssss',$PUnix,$P46,$IP,$PAD); 
$PAD = $AD; 
$PUnix = $Unix; 
$IP = $_SERVER['REMOTE_ADDR']; 
$P46 = $CTR; 
$stmt->execute(); 

場合。私は肯定的です。私は他のページをチェックしましたが、私は問題を発見していません。

編集:

"var_dump($ stmt);" bool(false)を表示します。

答えて

0

パラメータ$ PUnix、$ P46、$ IP、$ PADが表示されません。

$ stmt-> bind_param( 'ssss'、$ PUnix、$ P46、$ IP、$ PAD)を入れてみてください。それらの変数の下にある。

+0

bind_paramは変数の前に宣言できるいくつかのものの1つですphp.net/manual/en/mysqli-stmt.bind-param.php例1 – MoonEater916

+0

$ stmtをデバッグしてそこにエラーがあるかどうか確認してください。クエリに問題がある可能性があります。 – Victor1224

+0

"var_dump($ stmt);" bool(false)を示します。 – MoonEater916

0

代わりに$ stmt-> bindValueを使用してみてください。それは動作するはずです。

関連する問題