2

私は個人的な使用のために小さな Twitter クローンを構築していますが、それにはとても苦労しています。まず、テーブル「poke_history」の SQL 構造をお見せしたいと思います:
http://puu.sh/3Sci0.png

これは、値を (PHP で) テーブルに挿入するために使用するコマンドです。

$insert = "INSERT INTO poke_history (id, from, time, reason) VALUES ('".$to_id."', '".$from_id."', '".$time."', '".$reason."')";
mysql_query($insert) or die(mysql_error());

これは私が得ている厄介なエラーです:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from, time, reason) VALUES ( '1'' at line 3.

いくつかのことを明確にさせてください。
$to_idは数字です。
$from_idは数字です。
$timeは数値です (PHP の から取得time())。
$reasonはテキスト文字列です。

MySQL と PHP5 を使用しています。

4

6 に答える 6

0

SQL インジェクションを防ぐために、準備済みステートメントを使用するようにしてください。

$query = "
    INSERT INTO
        poke_history (`id`, `from`, `time`, `reason`)
    VALUES
        (:id, :from, :time, :reason)";

$db = new PDO("mssql:host=sqlserver;dbname=database", "username", "password");

$statement = $db->prepare($query);

$parameters = array(
    ":id" => $name,
    ":from" => $from,
    ":time" => $time,
    ":reason" => $reason
);

$statement->execute($parameters);
于 2013-08-02T22:38:05.077 に答える
-1

INSERT と INTO の間に * を追加するのを忘れたと思います。これが修正されたスクリプトです。

$insert = "INSERT * INTO poke_history (id, from, time, reason) VALUES ('".$to_id."', '".$from_id."', '".$time."', '".$理由。"')"; mysql_query($insert) または die(mysql_error());

于 2013-08-02T22:19:29.320 に答える