查询不发送

时间:2015-07-04 15:31:22

标签: php mysqli prepared-statement

我试图在我已经准备好之后创建第二个准备好的声明。我收到一个错误,说变量的数量不匹配。我认为这是因为准备部分中的'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));
        }

0 个答案:

没有答案