2017-02-22 5 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(); 
関連する問題