PHP警告:mysqli_stmt_bind_result()

时间:2014-09-09 17:09:19

标签: php sql mysqli prepared-statement

我不仅仅是使用PHP编程,而是根本不是编程。目前我正在做我的一个siple项目以改善自己。我做了onec但是现在我想让我的所有查询都使用准备好的语句,这对我来说是新的......

$create_stmt = mysqli_prepare($connection, "INSERT INTO `users`(`user_name`, `password`) VALUES (?,?)");
    if(!$create_stmt){
        echo 'error';
        exit;
    }
    mysqli_stmt_bind_param($create_stmt, 'ss',$username,$password);
    mysqli_stmt_execute($create_stmt);
    mysqli_stmt_bind_result($create_stmt, $new_uname, $new_unamepass);
    mysqli_stmt_fetch($create_stmt);

所以这是交易。我有这样的错误:

  

警告:mysqli_stmt_bind_result():绑定变量的数量与预准备语句中的字段数不匹配。

因为我想向我的用户添加2个值' table我宣布了2个新变量$new_uname$new_unamepass,但不知道这是不正确的......

同样mysqli_stmt_fetch($create_stmt);不是正确但是如果一切正常(显然它不行......)所以,如果有人可以帮助我或给我一些建议,那就太棒了!

1 个答案:

答案 0 :(得分:1)

尝试这个:

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$stmt = $mysqli->prepare("INSERT INTO `users`(`user_name`, `password`) VALUES (?,?)");
$stmt->bind_param('ss', $user, $pass);

$user='username';
$pass = 'Password1234';

/* execute prepared statement */
$stmt->execute();

printf("%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();