【发布时间】:2014-02-16 01:53:05
【问题描述】:
$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; }
}
不断收到此错误 - 致命错误:无法通过...中的引用传递参数 2 似乎没有任何效果 - 这可能与我的服务器设置有关吗? 我在这个论坛上看到了这个确切的 'stmt->bind_param() 格式,那个人说它有效...... PS:也需要从数据库中获取它,所以如果你能告诉我如何取回它,那就太好了 网络上的最佳论坛 - 实际有效的最新答案(到目前为止) 这对我有很大的帮助......谢谢一百万 还尝试了循环外的 stmt->bind_param() ... 格式为 #1
【问题讨论】:
-
你可以试试 foreach($arr as $key => $value) { $item = $value['item'];
-
Satha thnx 但同样的错误