0

下面是用于生成要在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());

如果数据插入数据库,这是屏幕截图 在此处输入图像描述

4

1 回答 1

1

您想要做的通常是这样完成的:

$val_array[] = "'{$data->val($i)}'";

即变量值在构建时插入到字符串中,而不是在执行时插入。

这是因为干净的 PHP 代码通常不使用“eval”函数,尽管有一些滥用 PHP 的方法来做到这一点。

此外,您通常需要应用该函数来转义值中的引号,以防止 SQL 注入:

$val_array[] = "'".mysql_real_escape_string($data->val($i))."'";
于 2012-10-15T07:04:46.630 回答