MariaDB 语法错误
Error in MariaDB Syntax
我正在尝试将数据添加到我的 MariaDB 数据库中。每次我 运行 php 文件时,我都会收到以下错误,
Error creating database: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO 'FileCenter' ('FileID', 'FileNAME', 'FileKEY', 'FileSRC') VALUES (NU' at line 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 行,从两个
得到相同的错误
- 数据库叫做"DownloadCenter","FileCenter"就是table。
FileID
是自增
这个:
//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() 调用中的第二个和后续语句将成为语法错误。
请注意,您的第二个查询(未注释的查询)末尾缺少一个 )
,从而给它带来了语法错误。
我正在尝试将数据添加到我的 MariaDB 数据库中。每次我 运行 php 文件时,我都会收到以下错误,
Error creating database: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO 'FileCenter' ('FileID', 'FileNAME', 'FileKEY', 'FileSRC') VALUES (NU' at line 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 行,从两个 得到相同的错误
- 数据库叫做"DownloadCenter","FileCenter"就是table。
FileID
是自增
这个:
//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() 调用中的第二个和后续语句将成为语法错误。
请注意,您的第二个查询(未注释的查询)末尾缺少一个 )
,从而给它带来了语法错误。