1

テーブルのフィールドを更新しようとしていますが、この構文エラーが発生し続けます。

global $conn, $strTableName;
db_exec("UPDATE equipment SET EContractNum = " . $_SESSION[$strTableName."_masterkey1"] . " WHERE EContractNum = " . $values['EContractNum'], $conn);

エラーは次のとおりです。

エラーの種類:256エラーの説明:SQL構文にエラーがあります。1行目の「WHEREecontractnum=35867111」の近くで使用する正しい構文については、MYSQLサーバーのバージョンに対応するマニュアルを確認してください。

私は私のものと似ているいくつかの検索を見てきましたが、私が間違っていることを理解することはできません。私はこれでかなり新しいので、それはおそらく単純なものです。私はそれを機能させることができないようです。助けてくれてありがとう。

4

1 に答える 1

2

$_SESSION[$strTableName."_masterkey1"]おそらく空か、引用符で囲む必要がある文字列です。

また、変数の生の値をそのようなクエリに入れないでください。フレームワークまたは準備済みステートメントを使用します。これはセキュリティに適しているだけでなく、この種のエラーを防ぐことにもなります (少なくとも、別の種類のエラーに変わります)。

于 2012-11-16T04:43:39.320 に答える