我得到这个SQL错误:
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 `tsv` (`Id`,`Date`,`Quantity`) VALUES( `1`,`2009-07-01`,`174`, `1`,`' at line 9
我在SQL查询方面没有什么经验,我真的看不出这里有什么问题。。。我试着用“”代替“`”。同时删除“ENGINE=MyISAM”,因为我不确定我使用的是哪个引擎。
CREATE TABLE IF NOT EXISTS `tsv`
( `_id` int(11) NOT NULL AUTO_INCREMENT,
`Id` text NOT NULL, `Date` text NOT NULL,
`Quantity` text NOT NULL, PRIMARY KEY (`_id`) )
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;
INSERT INTO `tsv` (`Id`,`Date`,`Quantity`)
VALUES( `1`,`2009-07-01`,`174`, `1`,`2009-07-02`,`96`,
`1`,`2009-07-03`,`271`, `1`,`2009-07-04`,`335`, `1`,
`2009-07-06`,`72`, `1`,`2009-07-07`,`246`, `1`,`2009-07-08`,
`93`, `1`,`2009-07-09`,`191`, `1`,`2009-07-10`,`136`, `1`,
`2009-07-11`,`200`, `1`,`2009-07-13`,`151`, `1`,`2009-07-15`,`99`);
以及PHP:
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
if ($conn->query($sqlContent) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sqlContent . "<br/>" . $conn->error;
}
$conn->close();
最佳答案
每一行都必须单独包含在paranthes中。
您需要使用单引号('
),而不是反勾号(`)作为值。
此外,不能在mysqli_query
内部调用单独的查询。同样使用mysqli_multi_query。来自文档:
执行一个或多个由
分号。
另外,为了防止SQL injection related issues,请使用Prepared Statements。
执行以下操作:
CREATE TABLE IF NOT EXISTS `tsv`
( `_id` int(11) NOT NULL AUTO_INCREMENT,
`Id` text NOT NULL, `Date` text NOT NULL,
`Quantity` text NOT NULL, PRIMARY KEY (`_id`) )
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=68 ;
INSERT INTO `tsv` (`Id`,`Date`,`Quantity`)
VALUES('1','2009-07-01','174'),
('1','2009-07-02','96'),
('1','2009-07-03','271'), ... and so on