簡體   English   中英

無法在mysql_query函數中執行PHP代碼。 代碼以字符串形式存儲在變量中

[英]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).\"\'";

}

然后使用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))."'";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM