0
我需要幫助,我的功能,我建立,我試圖使用MYSQLI準備,但我不是很好。功能動態插入到數據庫使用mysqli準備
這是我的函數:
function insertToDb($table,$rowsarray,$valuequestionmarks,$lenstrings,$valarray){
$this->mysqli->set_charset("utf8");
if ($insert_stmt = $this->mysqli->prepare(
"INSERT INTO $table ($rowsarray)
VALUES
($valuequestionmarks)"
))
{
$insert_stmt->bind_param("$lenstrings",$valarray);
// Execute the prepared query.
if(!$insert_stmt->execute())
{
die("Execute failed: (" . $insert_stmt->errno . ") " . $insert_stmt->error);
}
}
}
這也是我怎麼稱呼:
$img = "something.jpg";
$uip = ulUtils::GetRemoteIP(false);
$table='forgotpassqm';
$rowsarray = 'email,text,img,ip';
$valuequestionmarks ='?,?,?,?';
$lenstrings ='ssss';
$valarray ='$email,$text,$img,$uip';
$func->insertToDb($table,$rowsarray,$valuequestionmarks,$lenstrings,$valarray);
,我不斷收到此錯誤:
Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables
而執行錯誤:
Execute failed: (2031) No data supplied for parameters in prepared statement
我嘗試了一些組合沒有工作,我讀了其他問題沒有作爲我的,也沒有工作或幫助。
我知道這是關於ssss,但我使用4,它似乎是好的,所以我錯了嗎? 謝謝分配。
編輯:
$table output : forgotpassqm .
$rowsaray output: email,text,img,ip .
$valuequestionmarks output : ?,?,?,? .
$lenstrings output: ssss.
$valarray output: $email,$text,$img,$uip.
我認爲這個問題是在$的valarray。
什麼毛病我怎麼做?你看我是如何通過變量插入參數的嗎? – Ravg
是的,我做了,但是你對'$ valarray ='$ email,$ text,$ img,$ uip';'的陳述只不過是一個字符串,因爲你使用了單引號。我想我明白你在做什麼,但我會建議你對實現有所不同。 – Crackertastic
好吧,我明白了,我被吹了,這是問題,你有暗示?也許我用它作爲數組(),然後在函數中,我將使用列表? – Ravg