以下是用于生成要在mysql_query函数内部执行的代码的代码

for($i=1;$i<=$totalcols;$i++) {
    $val_array[] = "\'\".\$data->val(\$i,$i).\"\'";

}


然后使用implodestripslashes函数将上面的数组转换为不带斜杠的字符串。

$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());


这是将数据插入数据库的屏幕截图

最佳答案

通常,您要执行的操作是通过以下方式完成的:

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


即在构建变量值时(而不是在执行变量时)将其插入字符串中。

这是因为干净的PHP代码通常不使用“ eval”功能,尽管有一些滥用PHP的方法。

同样,通常需要应用该函数对值中的引号进行转义,以防SQL注入:

$val_array[] = "'".mysql_real_escape_string($data->val($i))."'";

关于php - 无法在mysql_query函数中执行PHP代码。代码以字符串形式存储在变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12890463/

10-11 17:30