插入数据库(SQL语法错误)

时间:2016-10-31 11:48:32

标签: php sql phpmyadmin mariadb

<?php 

require "connect.php";

$file = "./myFile2.txt";
$document = file_get_contents($file);

$lines = explode("\n",$document);




foreach($lines as $newline) { 
    $arr = explode(': ', $lines[0]);
    $order = $arr[1];

    /* echo $order.'<br>'; */
}

foreach($lines as $newline){ 
    $art = explode(': ', $newline);
    $total = $art[1]; 

    echo $total.'<br>';

    $sql = "USE receipts INSERT INTO receipt_content (total_price) VALUES ($total)";

    if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

}

?>

当尝试将回显的信息添加到我的数据库(phpmyadmin)[MariaDB服务器]时,我收到以下错误:

12364
  

错误:USE收据INSERT INTO receipt_content(total_price)VALUES(12364)   您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以获得正确的语法,以便使用&#39; INSERT INTO receipt_content(total_price)VALUES(12364)&#39;在第1行

600$
  

错误:USE收据INSERT INTO receipt_content(total_price)VALUES(600 $)   您的SQL语法有错误;查看与您的MariaDB服务器版本对应的手册,以获得正确的语法,以便使用&#39; INSERT INTO receipt_content(total_price)VALUES(600 $)&#39;在第1行

我有一个名为&#39;收据&#39;使用表格&quot; receipt_content&#39;,包含列&#39; total_price&#39;和&#39; order_number&#39;。

如何修复错误,以便将已解析的数据(&#39; 12364&#39;以及&#39; 600 $&#39;)正确插入到数据库表的列中。

1 个答案:

答案 0 :(得分:0)

正如人们在回复中提到的那样,您应该在查询之前选择数据库,而不是与查询一起。 (例如,打开连接时选择数据库)

另外,你应该使用mysqli中提供的绑定,或者更容易使用PDO。

http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

PDO允许基于名称的绑定,并将为您执行所有转义和引用。

$stmt = $db->prepare("INSERT INTO receipt_content VALUES(:total)");
$stmt->bindParam(':total', $total);
$stmt->execute();