2016-08-30 17 views
-2

MariaDBデータベースにデータを追加しようとしています。私がPHPファイルを実行するたびに、次のエラーが表示されます。MariaDB構文のエラー

データベースの作成中にエラーが発生しました.SQL構文にエラーがあります。 ( 'FileID'、 'FileNAME'、 'FileKEY'、 'FileSRC')VALUES(NU 'in line 1 "

)"あなたのMariaDBサーバーのバージョンに対応するマニュアルをチェックしてください。

ここに私のコードです:

<?php 
$servername = "localhost"; 
$username = "root"; 
$password = "password"; 
$database = "DownloadCenter"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $db); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

// Create database 
//sql = "USE DownloadCenter; INSERT INTO 'FileCenter' ('FileID', 'FileNAME', 'FileKEY', 'FileSRC') VALUES (NULL, 'Video ', '45ge5g', '/var/www/MyVideo.mp4'), (NULL, NULL, NULL, NULL);"; 
$sql = "INSERT INTO FileCenter (FileId,FileNAME,FileKEY,FileSRC) VALUES (DEFAULT, 'Video', '45ge5g', '/var/www/MyVideo.mp4'"; 
if ($conn->query($sql) === TRUE) { 
    echo "Database created successfully"; 
} else { 
    echo "Error creating database: " . $conn->error; 
} 

$conn->close(); 

注:

  • コメントSQL行(14行)をコピーしてPHPMyAdminのから貼り付けた、私は両方のMySQLのラインを試してみた、同じエラーを取得します。両方から
  • データベースは「DownloadCenter」と呼ばれ、「FileCenter」はテーブルです。あなたは、単一のDB呼び出しで複数のステートメントを実行することはできません

    //sql = "USE DownloadCenter; INSERT INTO 'FileCenter' ('FileID', 'FileNAME', 'FileKEY', 'FileSRC') VALUES (NULL, 'Video ', '45ge5g', '/var/www/MyVideo.mp4'), (NULL, NULL, NULL, NULL);"; 
    

  • FileID
+2

コメントアウトされていないINSERTには 'VALUES()'リストに ')'がありません。これはエラーです(注意深く見れば、errmsgは異なります)。下のMarcの答えによる他のエラー。 –

+0

mysqliの4番目のパラメータは$ dbですが、$ database – DiceXQ

答えて

2

この自動インクリメントです。これは、SQLインジェクション攻撃の一形態に対する基本的な防御として、PHPの基本となるmysqlドライバの中核的な制限です。

複数のステートメントを実行することはできないため、1回のquery()呼び出しで2番目以降のステートメントは構文エラーになります。

2番目のクエリ(コメントを外したもの)には最後に)がありません。そのため、独自のsynaxエラーが発生します。

+0

である必要があります。ありがとう、私は ')'を$ DBに$ dbに名前を変更し、すべてが今完全に動作するようです。 –

関連する問題