所以我不知道这是什么交易..。下面的代码会在代码后面产生mysql错误。
$fcontents = file("inventory.csv");
for ($i = 1; $i < sizeof($fcontents); $i++) {
$line = trim($fcontents[$i]);
$arr = explode(',', $line);
$values = implode(',', $arr);
$values = str_replace('&', 'and', $values);
$sql = 'INSERT INTO inventory (dealerid, name, vin, stock, newused, year, ' .
'make, model, series, body, color, intcolor, price, retailprice, ' .
'miles, transmission, engine, restraint, certified, photourl, ' .
'comments, flag, options, citympg, hwympg) ' .
'VALUES mysql_real_escape_string(' . $values . ')';
mysql_query($sql);
echo $sql.'<br><br>';
if (mysql_error()) {
echo mysql_error() .'<br><br>';
}
}您的SQL语法出现错误;请检查与您的MySQL服务器版本对应的手册,以获得正确的语法以使用near‘
解决了!所以我想在mysql中转储.csv文件时把这个解决方案发到愚蠢的、愚蠢的单引号、双引号故障上.见下文:
$fcontents = file("http://pathtofile.com/inventory.csv"); for($i=1; $i < sizeof($fcontents); $i++) { $line = trim($fcontents[$i]); $arr = explode(",", $line); $arr = str_replace ("'","'", $arr); $values = implode("','", $arr); $values = str_replace("\"',",'\'",', $values); $values = str_replace(",'\"",',"\'', $values); $values = str_replace("&", "and", $values); $sql = "INSERT INTO vehicles.inventory (dealerid,name,vin,stock,newused,year,make,model,series,body,color,intcolor,price,retailprice,miles,transmission,engine,restraint,certified,photourl,comments,flag,options,citympg,hwympg) VALUES ('".$values."')"; mysql_query($sql);发布于 2010-10-19 22:46:19
在MYSQL查询中有一个PHP函数。
我不相信您可以将函数移出引号之外,但是您必须遍历所有的值:
即。
foreach($values as $key=>$value){
$values[$key] = mysql_real_escape_string($value);
}添加该值以转义所有值,然后更改查询以删除PHP函数。
此外,你也必须使用引号,而不仅仅是逗号。
发布于 2010-10-19 22:36:11
在explode()和implode()行之间,您应该是$arr中的每个值的mysql_real_escape_string()-ing。函数应该在PHP中执行,而不是发送到MySQL以使其执行。
您可以打印(或记录)生成的SQL语句,并且可能会发现问题。
发布于 2010-10-19 22:38:47
mysql_real_escape_string()是一个PHP函数,但是当它出现在代码中时,它仍然在字符串范围内。
试试这个:
$sql = 'INSERT INTO inventory (dealerid, name, vin, stock, newused, year, make, model, series, body, color, intcolor, price, retailprice, miles, transmission, engine, restraint, certified, photourl, comments, flag, options, citympg, hwympg) VALUES (' . mysql_real_escape_string($values) .')';https://stackoverflow.com/questions/3973308
复制相似问题