[英]Unable to execute PHP code in mysql_query function. Code is stored inside variable as string
以下是用於生成要在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());
這是將數據插入數據庫的屏幕截圖
您想要做的通常是通過以下方式完成的:
$val_array[] = "'{$data->val($i)}'";
即,將變量值在構建它時(而不是在執行它時)插入到字符串中。
這是因為干凈的PHP代碼通常不使用“ eval”功能,盡管有一些濫用PHP的方法。
另外,通常需要將該函數應用於值中的轉義引號,以防SQL注入:
$val_array[] = "'".mysql_real_escape_string($data->val($i))."'";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.