2017-02-22 20 views
1

我想讀取URL查詢字符串,並將其保存到一個SQLite數據庫 我面對這些錯誤消息:插入文本SQLite的地方文字有"

PHP Warning: SQLite3::exec(): near ",": syntax error 

但我不的問題:

$Tel = $_REQUEST["from"]; 
$Content = $_REQUEST["text"]; 
echo $Tel = strip_tags($Tel); 
echo $Content = strip_tags($Content); 
    $sql =<<<EOF 

     INSERT INTO foodordering(Fullname, Tel, RecievingTime, Content) 
     VALUES ("Ehsan", $Tel, date('now'), $Content); 

EOF; 

    $ret = $db->exec($sql); 
+2

你需要確保你的投入,閱讀更多有關準備聲明或/和手動轉義您的輸入 – hassan

回答

1

正如@HassanAhmed所述,這是當輸入處理不當時發生的情況;你會看到同樣的問題,就好像有人對你使用SQL injection一樣。速戰速決是包裝領域中的引號:

VALUES ("Ehsan", "$Tel", date('now'), "$Content"); 

什麼,你應該做的是綁定的參數

$sql =<<<EOF 

INSERT INTO foodordering(Fullname, Tel, RecievingTime, Content) 
VALUES ("Ehsan", :tel, date('now'), :content); 

EOF; 

$stmt = $db->prepare($sql); 
$stmt->bindValue(':tel', $_REQUEST['from']); 
$stmt->bindValue(':content', $_REQUEST['text']); 

$ret = $stmt->execute(); 
相關問題