-5

次のコードを書いた後、今まで見たことのないエラーに遭遇しました:

$query= "UPDATE `Pharm_Log` SET `text` = ". $bloodtest . " WHERE `id` = " . $patientid;
   $result = mysql_query($query) or die(mysql_error());

私のエラーメッセージはこれでした

「SQL 構文にエラーがあります。1 行目の 'Pressure Test: 235/43 WHERE id= 1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」

誰でもこれを修正する方法について何か考えがありますか? 大歓迎です

4

1 に答える 1

8

文字列リテラル (の値$bloodtest) は一重引用符で囲む必要があります。

$query= "UPDATE `Pharm_Log` SET `text` = '". $bloodtest . "' WHERE `id` = " . $patientid;
$result = mysql_query($query) or die(mysql_error());

補足として、変数のSQL Injection値が外部から取得された場合、クエリは脆弱です。予防方法については、以下の記事をご覧ください。を使用すると、値を一重引用符で囲む必要がなくなります。PreparedStatements

于 2013-02-12T14:17:13.537 に答える