MariaDB语法错误

时间:2016-08-30 16:58:42

标签: php mysql mariadb

我正在尝试将数据添加到MariaDB数据库。每次运行php文件时,都会出现以下错误,

  

创建数据库时出错:SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,以便在'INSERT INTO'FileCenter'('FileID','FileNAME','FileKEY','FileSRC')VALUES(NU'在第1行“

这是我的代码:

<?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行,从两者中获取相同的错误
  • DataBase名为“DownloadCenter”,“FileCenter”为表。
  • FileID是自动递增

1 个答案:

答案 0 :(得分:2)

此:

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

您无法在单个数据库调用中运行多个语句。它是PHP底层mysql驱动程序的核心限制,是对一种形式的SQL注入攻击的基本防御。

由于您无法运行多个语句,因此单个query()调用中的第二个和后续语句将成为语法错误。

请注意,您的第二个查询,即未注释的查询,最后会丢失一个),并为其提供自己的synax错误。