-6

以下は私のコードですが、 where 句でエラーが発生しています

<?php

// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

$response = array();

$dom = new DOMDocument();
$dom->loadHTMLFile("http://www.pizzahut.com.pk/deals.html");
//echo $dom->saveHTML();
$table = $dom->getElementsByTagName('td');


for($i = 30; $i < 35; $i++ ){
    $deal = $table->item($i)->nodeValue;
   echo $deal;
}
$id = 1813660169;
$result = mysql_query("INSERT INTO cafes(deal)
        VALUES('$deal') WHERE `id` = " .$id) or die(mysql_error());


echo mysql_num_rows($result); 

if ($result) {
        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Place successfully created.";

        // echoing JSON response
        echo json_encode($response);
    } else {
        // failed to insert row
        $response["success"] = 0;
        $response["message"] = " ID already inserted";

        // echoing JSON response
        echo json_encode($response);
    }


?>

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

助けが必要

4

6 に答える 6

6

基本構文に節を含めることはできません。あなたが本当に欲しいのは、声明だと思います。WHEREINSERTUPDATE

UPDATE cafes SET deal = '$deal' WHERE id = $id

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

于 2013-05-16T08:59:06.707 に答える
0

挿入する WHERE を追加する理由は何ですか? テーブルにレコードを挿入するだけです。

于 2013-05-16T09:02:44.010 に答える