以下是用于生成要在mysql_query
函数
for($i=1;$i<=$totalcols;$i++) {
$val_array[] = "\'\".\$data->val(\$i,$i).\"\'";
}
然后使用implode
和stripslashes
函数将上面的数组转换为不带斜杠的字符串。
$val = stripslashes(implode(",",$val_array));
所有这些都会产生如下字符串
'".$data->val($i,1)."','".$data->val($i,2)."','".$data->val($i,3)."'
这是我在VALUES()
中使用的字符串。不是执行代码然后在数据库中插入值,而是将字符串原样插入到数据库中。如下使用mysql_query函数。
mysql_query("INSERT INTO import_excel ($val_string) VALUES($val)") or die(mysql_error());
以下是插入数据库的数据截图
答案 0 :(得分:1)
您想要做的通常是这样做的:
$val_array[] = "'{$data->val($i)}'";
即。变量值在构建时插入到字符串中,而不是在执行时插入。
这是因为干净的PHP代码通常不使用“eval”函数,尽管有办法滥用PHP来实现它。
此外,您通常需要应用该函数来转义值中的引号,以免SQL注入:
$val_array[] = "'".mysql_real_escape_string($data->val($i))."'";