我目前正在尝试使用PHP通过csv文件将数据导入mysql,同时这样做我收到以下错误:
上传文件名:test.csv您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,使用附近的名称,国家,货币)值('公司名称','国家',&# 39;货币')'在第1行
所以请帮我解决上述错误 提前致谢
这是我正在使用的代码
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'root';
$db_pwd = '';
$database = 'automation';
$table = 'company';
if (!mysql_connect($db_host, $db_user, $db_pwd))
die("Can't connect to database");
if (!mysql_select_db($database))
die("Can't select database");
if(isset($_POST['submit']))
{
$fname = $_FILES['sel_file']['name'];
echo 'upload file name: '.$fname.' ';
$chk_ext = explode(".",$fname);
if(strtolower(end($chk_ext)) == "csv")
{
$filename = $_FILES['sel_file']['tmp_name'];
$handle = fopen($filename, "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
{
$sql = "INSERT into company(Company name,Country,Currency) values('$data[0]','$data[1]','$data[2]')";
mysql_query($sql) or die(mysql_error());
}
fclose($handle);
echo "Successfully Imported";
}
else
{
echo "Invalid File";
}
}
?>
<h1>Import CSV file</h1>
<form action='<?php echo $_SERVER["PHP_SELF"];?>' method='post' enctype="multipart/form-data">
Import File : <input type='file' name='sel_file' size='100'>
<input type='submit' name='submit' value='submit'>
</form>
答案 0 :(得分:1)
如果列company name
是两个单词,则必须将其包装在反引号中。
如果数据中有引号(或上帝禁止,某种SQL注入),你基本上就注定了。
mysql_*
已被弃用,使用起来不安全。您应该查看PDO或MySQLi准备好的语句。
并且,如果这是一次性上传,请考虑使用phpMyAdmin导入您的CSV。