2017-12-29 3 views
-2

ログブックを使用してすべてのユーザー操作を追跡しています。 ページの検索をMySQLデータベースに保存しようとすると、次のエラーが表示されます。You have an error in your SQL syntax;はこれを余分な列として見ていますか?データベースにMySQLクエリをログとして保存する

$sql_lgb = "INSERT INTO logboek 
       (
        omschrijving, 
        zoek, 
        sort, 
        soort, 
        user_id 
       ) 
       VALUES 
       (
        '".$omschrijving."', 
        '".$zoek_opdr."', 
        '".$sort_name."', 
        'pagina bezocht', 
        '".$_SESSION['user_id']."' 
       ) 
      "; 

// resultaat van query 
if(!$res_lgb = mysqli_query($mysqli, $sql_lgb)) { include('includes/error_database.php'); die; } 

これは、クエリの出力です:

INSERT INTO logboek (omschrijving, zoek, sort, soort, user_id) VALUES ('Pagina Manuals bezocht', ' (bedrijf LIKE 'torza' OR bedrijf LIKE 'thure' OR bedrijf LIKE 'mb') AND (naam LIKE '%%') ', 'naam', 'pagina bezocht', '1') 
+0

'zoek_opdr'の値は何ですか? –

+1

[PHPでSQLインジェクションを防止するにはどうすればいいですか?](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Progman

答えて

0

データベースに送信される値は「zoek」値で複数の引用'を持っています。

このようなエラーを回避するには、\'をエスケープする必要があります。

さらに、準備されたステートメントでPDOを使用することもできます。

関連する問題