PHP将XML价格插入SQL表 - SQL语法错误

时间:2017-01-12 08:28:40

标签: php mysql sql-server insert mariadb

我是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();
?>

如果有人可以帮我解决这个问题,那会很棒。我觉得我很亲密......

2 个答案:

答案 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')