我想使用以下脚本插入多条记录。但是,只有第一个被插入。之后,它会停止而不显示任何错误。这些准备好的语句执行有什么问题?在For循环中准备插入语句仅适用于第一次迭代..(PHP)
//$dbc = database connection //shortan here
// $mid[] = {1,2,3,4}; //sortened here.
$q5 = "INSERT INTO user_book_trn(user_id, member_id, book_id, date_read, lang_id) VALUES (?, ?, ?, now(), ?)";
$s5 = mysqli_prepare($dbc, $q5);
//Bind the variables:
mysqli_stmt_bind_param($s5, 'iiii', $user_id, $member_id, $book_id, $lang_id);
foreach($mid as $mk => $mv) { //check for each selected check box value from member list:
$q2 = "SELECT user_id, member_id, book_id FROM user_book_trn WHERE user_id = {$_SESSION['myuser']['userid']} and member_id = {$mv} and book_id= {$w}";
$r3 = mysqli_query($dbc, $q2);
if (mysqli_num_rows($r3) == 0) { //title is available for this user.
//Assign the values to variables:
$user_id = (int)$_SESSION['myuser']['userid'];
$member_id = (int)$mv;
$book_id = (int)$w;
$lang_id = (int)$_SESSION['lid'];
//just to check each iteration gets new values:
echo "user_id : $user_id \n";
echo "member_id : $member_id \n";
echo "book_id : $book_id \n";
//Execute the query:
mysqli_stmt_execute($s5);
if (mysqli_affected_rows($dbc) == 1) {
//this runs ok just for the first iteration.. Why?
echo "<p><b> The book $t is added. </b></p>";
$_SESSION['bookid'] = $book_id;
}
}
}
'的var_dump($ MID)' – 2012-07-11 18:59:21
地方,为什么这个的var_dump($中旬) ?我为每次迭代打印member_id,只是为了确保它获得新的价值。 – 2012-07-11 19:02:22
第二次运行'echo“user_id:$ user_id'或者它在那之前死了吗?你有3个开始护腕'{',但只有一个结束'}',我希望那是因为另一个2在部件之外你复制,如果没有添加2'}'看看是否有差异 – 2012-07-11 19:07:53