簡體   English   中英

php mysqli綁定參數:在准備好的語句中沒有為參數提供數據

[英]php mysqli binding parameter:No data supplied for parameters in prepared statement

好的,這是我的代碼,可以動態綁定參數。

$sql = "INSERT INTO `users` (`name`, `password`, `email`, `permission`) VALUES (?, ?, ?, ?)";
$sql_stmt =  $mysqli->prepare ($sql);

$test = array("ssss","1","2","3","4");

call_user_func_array(array($sql_stmt,'bind_param') ,$test);

$sql_stmt->execute();

我收到“在准備好的語句中沒有為參數提供數據”錯誤。 但是,以下行將起作用。

call_user_func_array(array($sql_stmt,'bind_param') ,array("ssss","1","2","3","4"));

我不知道這是怎么回事。

編輯我只是嘗試做一個

echo $sql_stmt->param_count;

我得到正確的計數4。

如果我能對此有所啟發,將會有很大的幫助。

謝謝。

閱讀PHP頁面中的第二個注釋,以了解bind_param 它說call_user_func_array()需要通過引用傳遞參數。 所以這應該工作:

$arr = array('ssss', '1', '2', '3', '4');
call_user_func_array( array($sql_stmt, 'bind_param'), &$arr );

暫無
暫無

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

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