php - msqli stmt->bind error '无法通过引用传递参数 2

标签 php mysql foreach insert

$arr = array (
        array ('item'=>'Salt', 'on_hand'=>2, 'cost'=>3.29, 'format'=>'box'),
        array ('item'=>'Pepper', 'on_hand'=>1, 'cost'=>2.19, 'format'=>'bag'),
        array ('item'=>'Cinnamon', 'on_hand'=>1, 'cost'=>1.55, 'format'=>'shaker'),
        );
  $sql = "INSERT INTO item_list VALUES (?, ?, ?, ?, ?)";
  if (!($stmt=$db->prepare($sql))) {
    echo "<br />Prepare failed: (".$db->errno.") ".$db->error; }
  foreach($arr as $key) {
    $item = $key['item'];
    $on_hand = $key['on_hand'];                    // format 1. $item or format 2. $key[;item']
    $cost = $key['cost'];                          // echo works with both formats...
    $format = $key['format'];                      // stmt->bind neither format works...
    echo "<br>$item $on_hand $cost $format<br>";   // first var is auto-increment *NULL*
    if (!$stmt->bind_param("isids", null, $key["item"], $key["on_hand"], $key["cost"], $key["format"])) {
        echo "<br />Binding failed: (".$stmt->errno.") ".$stmt->error; }
    if(!$stmt->execute()) {
      echo "<br />Execute failed: (".$stmt->errno.") ".$stmt->error; }
  }

经常出现这个错误 - fatal error :无法通过引用传递参数 2 ... 似乎没有任何效果 - 它可能与我的服务器设置有关吗? 我在这个论坛上看到过这种确切的 'stmt->bind_param() 格式,有人说它有效...... PS:还需要从数据库中获取它,所以如果你能告诉我如何取回它,那就太好了 网络上最好的论坛 - 实际有效的最新答案(到目前为止) 这对我有很大的帮助......谢谢一百万 还尝试在循环外使用 stmt->bind_param()... 使用格式 #1

最佳答案

您可以在 INSERT 语句中指定列名,而不添加 AUTO_INCREMENT 列。

INSERT INTO item_list (column2, column3, column4, column5) VALUES (?, ?, ?, ?);

尝试这样的事情:

$stmt=$db->prepare($sql);
$stmt->bind_param("sids", $item, $on_hand, $cost, $format);

foreach($arr as $key) {
    $item = $key['item'];
    $on_hand = $key['on_hand'];
    $cost = $key['cost'];                          
    $format = $key['format']; 

    $stmt->execute();
}

关于php - msqli stmt->bind error '无法通过引用传递参数 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21806274/

相关文章:

javascript - 设置 PHP 数组以使用从 Json 对象创建的下拉列表

php - 传递的变量在目标页面的 url 中返回空

php - mysql 和 php 中的时间戳

php - 空间替换为 " "的问题

php - 在php中使用外键在表中插入值

java - 我在 jsp 页面上检索下拉选项的数组值时遇到问题

PHP - 如何将数组发送到另一个页面?

适用于 Windows 的 PHP 驱动的 GUI 应用程序

php - 如何访问两个表之间的同名列

javascript - 无法在 JavaScript 中过滤项目