我试图在我已经准备好之后创建第二个准备好的声明。我收到一个错误,说变量的数量不匹配。我认为这是因为准备部分中的'date_requested'。我已经在另一个查询中完成了这个,并没有为它抛出错误。我不确定这是否是导致代码中断的原因或者是什么,但这不是通过发送第二个查询的任何内容。第一个仍然是罚款。
警告:mysqli_stmt :: bind_param():变量数量与第137行/home4/pfarley1/public_html/sundayfundayleague.com/register.php中预准备语句中的参数数量不匹配
第137行
$stmt->bind_param('iisssssi', $id, $user_id, $firstname, $lastname, $email, $username, $status, $group);
这是我在页面上的两个查询的代码。第一个工作完美,但第二个工作得到了错误。
if(isset($_POST['submit'])){
$id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );
$user_id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );
$firstname = Input::get('firstname');
$payment_name = "Owes";
$payment_id = 1;
$payment_amount = 0;
//Query to add user's name to owes db table
$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("INSERT INTO payment_status
(id, user_id, firstname, payment_name, payment_id, payment_amount)
VALUES
(?, ?, ?, ?, ?, ?)");
if ( false===$stmt ) {
// Check Errors for prepare
die(' Owes DB prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param('iissii', $id, $user_id,
$firstname, $payment_name,
$payment_id, $payment_amount);
if ( false===$stmt ) {
// Check errors for binding parameters
die('Owes DB bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();
if ( false===$stmt ) {
die('execute() failed: ' . htmlspecialchars($stmt->error));
}
}
//Query that adds user to User Request db table
if(isset($_POST['submit'])){
$id = ( isset( $_SESSION['id'] ) ? $_SESSION['id'] : "" );
$user_id = ( isset( $_SESSION['user'] ) ? $_SESSION['user'] : "" );
$firstname = Input::get('firstname');
$lastname = Input::get('lastname');
$email = Input::get('email');
$username = Input::get('username');
$status = "Pending";
$group = 1;
$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt2 = $con->prepare("INSERT INTO user_requests
(id, user_id, firstname, lastname, email, username, status, `group`, date_requested)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW())");
if ( false===$stmt2 ) {
// Check Errors for prepare
die('User Request prepare() failed: ' . htmlspecialchars($con->error));
}
$stmt->bind_param('iisssssi', $id,
$user_id, $firstname, $lastname, $email,
$username, $status, $group);
if ( false===$stmt2 ) {
// Check errors for binding parameters
die('User Request bind_param() failed: ' . htmlspecialchars($stmt->error));
}
$stmt->execute();
if ( false===$stmt2 ) {
die('User Request execute() failed: ' . htmlspecialchars($stmt->error));
}
}
有人看到我做错了吗?
喜欢这样吗?...
if (!$stmt2->bind_param('iisssssi', $id, $user_id, $firstname, $lastname, $email, $username, $status, $group) {
die('User Request bind_param() failed...);
// Check errors for binding parameters
die('User Request bind_param() failed: ' . htmlspecialchars($stmt->error));
}