2017-04-13 7 views
0

フォームから情報を取得し、その詳細を「queue」というデータベーステーブルに格納するアプリケーションを作成しました。テーブルはエンティティ「位置」(主キー、自動インクリメント)、「名前」、「サービス」および「QueuedAt」で構成されます。 アプリケーションの実行中にこのSQLlite :: execエラーが発生しました。SQLite3 :: execエラー(テーブルにデータを挿入する)

警告:SQLite3の:: EXEC():近い "jghjhgfjhgf":Eでの構文エラー:\ Programy \ xamppの\ htdocsに\ QueueAppLocal \ process.phpライン上の31 近い "jghjhgfjhgf":構文エラー

これは、テーブルだけで、問題が何であるかを実現

<?php 
class MyDB extends SQLite3 
{ 
    function __construct() 
    { 
     $this->open('queue.db'); 
    } 
} 
$db = new MyDB(); 
if(!$db){ 
    echo $db->lastErrorMsg(); 
} else { 
    echo "Opened database successfully\n"; 
} 

if(isset($_POST['formSubmit'])) { 

    $varFirstName = $_POST['formFirstName']; 
    $varLastName = $_POST['formLastName']; 
    $varTitle = $_POST['formTitle']; 
    $varService = $_POST['formServices']; 

    $varFullName = $varTitle . " " . $varFirstName . " " . $varLastName; 
} 

    $sql =<<<EOF 
      INSERT INTO queue (Name,Service,QueuedAt) 
      VALUES ($varFullName, $varService, CURRENT_TIME); 
EOF; 

$ret = $db->exec($sql); 
if(!$ret){ 
    echo $db->lastErrorMsg(); 
} else { 
    echo "Records created successfully\n"; 
} 
$db->close(); 
+0

_クエリで文字列操作を使用しないでください!彼らはセキュリティ上のリスクです!あなたの言語で "パラメータ化されたクエリ"を行う方法を探します。 –

答えて

-1

にフォームの詳細を挿入しようとする私のprocess.phpファイルです。 $ sqlの値では、VALUES( '$ varFullName'、 '$ varService'、CURRENT_TIME)のように変数を一重引用符で囲むのを忘れていました。

関連する問題