1

私は使用しています

$shouldfollow = "'".htmlspecialchars($_GET["shouldfollow"])."',";
echo $shouldfollow;

に似た文字列を実現し'apple',ます。これまでのところ100% 動作します。トリッキーな部分は、MySQL コマンドでその変数を使用しようとすることです。これが私が試したことです。

mysqli_query($con,"UPDATE users SET following=".$shouldfollow." WHERE username='$username'");

しかし、代わりに私の構文が間違っていると言っています。コマンドが希望どおりに機能することはわかっています(つまり、'',パーツを削除した場合)。

紛らわしいほど冗長ではない場合、上の図は、コマンドを実行した後の最終結果です。

4

1 に答える 1

2

htmlspecialcharswhich は SQL には意味がなく、HTML にはのみ使用する必要がありますが、mysqli::real_escape_string

または、さらに良いことに、準備されたステートメント

コンマはどうですか - 一度にすべての変数をエスケープする必要があります:

$shouldfollow = mysqli_real_escape_string($_GET["shouldfollow"]);

または準備されたステートメントで:

$stmt = mysqli_prepare($db, 'UPDATE users SET following = ? WHERE username = ?');
mysqli_stmt_bind_param($stmt, 'ss', $_GET["shouldfollow"], $username);
mysqli_stmt_execute($stmt);

$_GET["shouldfollow"]追加で存在するかどうかを確認する必要がありますが、この質問の範囲外です。

于 2013-04-15T00:13:04.667 に答える