我正在尝试将数据添加到MariaDB数据库。每次运行php文件时,都会出现以下错误,
创建数据库时出错:SQL语法中有错误;查看与您的MariaDB服务器版本对应的手册,以便在'INSERT INTO'FileCenter'('FileID','FileNAME','FileKEY','FileSRC')VALUES(NU'在第1行“'附近使用正确的语法p>
这是我的代码:
<?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();
注意:
FileID
是自动递增答案 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错误。