我是StackOverflow的新手。希望我正确地进行提问。
我正在尝试将外部XML(URL)中的数据插入到SQL表中,但我得到了:
错误:INSERT INTO'table_name'('price')VALUE('5.95') 您的SQL语法有错误;查看与MariaDB服务器版本对应的手册,以获取正确的语法 在第1行''BBB'('price')VALUE('5.95')'附近
我能够从XML中获取ECHO和PRINT值,并且能够将非xml值插入到表中。我正在使用的代码是:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$xml=simplexml_load_file("external_xml_url") or die("Error: Cannot create object");
foreach ($xml->product as $row) {
$price = $row -> price;
$sql = "INSERT INTO 'table_name' ('price')"
. "VALUES ('$price')";
}
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
如果有人可以帮我解决这个问题,那会很棒。我觉得我很亲密......
答案 0 :(得分:0)
据我所知,对于MariaDB,你必须使用Backticks来&#34; qoute&#34;对象的名称。
试试这样:
$sql = "INSERT INTO `table_name` (`price`) VALUES ('$price')";
如果您不处理危险对象名称,则可以使用
$sql = "INSERT INTO table_name (price) VALUES ('$price')";
答案 1 :(得分:-1)
如果你的价格合适,那么你应该检查你的查询 防爆。 INSERT INTO table_name(price)VALUES('$ price')