亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我會收到此錯誤,警告:mysqli_stmt::bind_param():

為什么我會收到此錯誤,警告:mysqli_stmt::bind_param():

PHP
LEATH 2022-10-14 14:49:08
我創建了一個查詢類來處理我所有的基本 sql 函數,在類中我有一個基本函數,它使用準備好的語句插入數據,即“插入”函數,我不太清楚為什么,但我一直收到同樣的錯誤(列出以上)每次我調用該函數時class Query{    private $conn;    private $table;    public function __construct($conn, $table)    {        $this->conn = $conn;        $this->table = $table;    }     public function Insert($fields, $placeholders, $binders, $values)     {        $field_val= implode(', ', $fields);        $ph=implode(', ', $placeholders);        array_walk($values, function(&$x) {$x = "'$x'";});        $val = implode(',  ', $values);        $query = 'INSERT INTO '.$this->table.' ('.$field_val.') VALUES('.$ph.')';        $stmt = $this->conn->prepare($query);        $stmt->bind_param(''.$binders.'', $val);        $stmt->execute();      }}這是用于將數據插入注釋表的函數的示例,連接來自模塊中包含的單獨數據庫文件    $database = new Database();    $conn = $database->connect();    //values    $comment_date = mysqli_real_escape_string($conn, htmlspecialchars($_POST['date-comment']));    $commenter = mysqli_real_escape_string($conn, htmlspecialchars($_POST['comment_name_of']));    $comment = mysqli_real_escape_string($conn, htmlspecialchars($_POST['comment']));    $comments_save = new Query($conn, 'nw_comments');    $fields = array('commenter_name', 'comment_value', 'date_commented');    $placeholders = array('?', '?', '?');    $binders = "sss";    $values = array($commenter, $comment, $comment_date);    $comments_save->Insert($fields,$placeholders,$binders,$values);
查看完整描述

1 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

看起來代碼正在將字符串標量傳遞給bind_param. 我想我們要傳遞數組的元素。

我們可以這樣做:

$stmt->bind_param(''.$binders.'', $values);

正如 Bill Karwin 正確指出的那樣,傳遞整個數組(如上一行)是行不通的,它與傳遞單個引用的原始數組存在相同的問題。語法應該導致該...數組被解包,每個單獨的元素通過引用傳遞,元素數量可變。)

像這樣的東西:

$stmt->bind_param(''.$binders.'', ...$values);

對于通過綁定參數傳遞值,我們不需要將值括在單引號中。不需要這些行:

 array_walk($values, function(&$x) {$x = "'$x'";});
  $val = implode(',  ', $values);


查看完整回答
反對 回復 2022-10-14
  • 1 回答
  • 0 關注
  • 203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號