このサイトが大好きです。私は mysql と php を学んで、デザインと iPhone メッセージング クライアントを支援しています (娯楽目的で、アプリ ストアに公開していません)。
テーブル内の特定のアイテムを更新しようとして問題が発生しています。基本的に、ユーザーがメッセージを読んだらメッセージを既読としてマークしようとしていますが、エラーが発生しています
エラーメッセージ:
データを更新できませんでした: SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の「read='MAYBE' WHERE id='19'' 付近で使用する正しい構文を確認してください。
GET を送信する URL の例を次に示します。これにより、row/id # 19 が検出され、READ が YES としてマークされるため、以前は NO に設定されていたため、読み取られました。
http://myawesomesite.com/markasread.php?idnumber=19&readmessage=MAYBE
これが私のコードです:
<?php
$useridnumber = $_GET['idnumber'];
$didread = $_GET['readmessage'];
$conn = mysql_connect("sqlurl.com","sqllogin","sqlpassword");
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydatabase');
$sql = ("UPDATE messages SET read='$didread' WHERE id='$useridnumber'");
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
?>
ログイン情報が同じphpとsqlインジェクションにあることは理解していますが、このアプリはプライベートチャット用に2人だけ専用であるため、この時点でセキュリティ上の懸念に実際に対処する必要はないと考えました.... :-)