mysqli_stmt_bind_param(): Number of variables doesn#39;t match number of parameters in prepared statement in bind param(mysqli_stmt_bind_param():变量数与绑定参数中准备好的语句中的参数数不匹配)
问题描述
我收到此错误.我想注册到页面.mysqli_stmt_bind_param():变量数与绑定参数中准备好的语句中的参数数不匹配.`
I am getting this error.i wanna register to page. mysqli_stmt_bind_param(): Number of variables doesn't match number of parameters in prepared statement in bind param. `
<?php if(isset($_POST['submit'])) { // Was the form submitted?
$link = mysqli_connect("localhost", "root", "", "databaseInitialization") or die ("Connection Error " . mysqli_error($link));
$sql = "INSERT INTO user(first_name, last_name, email, password, bio, location, industry,salt) VALUES(?,?,?,?,?,?,?,?)";
if ($stmt = mysqli_prepare($link, $sql)) {
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$_SESSION['email'] = $email;
$bio = $_POST['bio'];
$location = $_POST['location'];
$industry = $_POST['industry'];
$salt = mt_rand();
$password = password_hash($salt.$_POST['pass'], PASSWORD_BCRYPT) or die("bind param");
//echo "before bind";
mysqli_stmt_bind_param($stmt, 'sssssss', $fname, $lname, $password, $email, $bio, $location, $industry) or die("bind param");
//echo "after bind";
if(mysqli_stmt_execute($stmt)) {
echo "<h4><b><center>Success</center></b></h4>";
//this redirects to user.php - but still need to log in
header('location: user.php');
} else {
echo "<h4><b><center>Failed</center></b></h4>";
printf("<b><center>Error: %s</center></b>.
", mysqli_stmt_error($stmt));
}
$result = mysqli_stmt_get_result($stmt);
}
}
else { ?>`
推荐答案
在你的插入中,有 8 列,只有 7 个绑定
In your insert, are 8 columns and only 7 binds
1 2 3 4 5 6
INSERT INTO user(first_name, last_name, email, password, bio, location,
7 8
industry,salt)
VALUES(?,?,?,?,?,?,?,?)
1 2 3 4 5 6 7 8
绑定,缺少一个,可能是salt
The binds, is missing one, propably the salt
1234567
mysqli_stmt_bind_param($stmt, 'sssssss',
1 2 3 4 5 6 7
$fname, $lname, $password, $email, $bio, $location, $industry) or die("bind param");
s,列和变量的数量必须相同,在这种情况下为 8.要修复只需添加一个 s
和 $salt
在 bind_param()
,像这样:
the numbers of s, columns and variables must be the same, in this case 8. To fix just add one s
and $salt
at bind_param()
, like this:
mysqli_stmt_bind_param($stmt, 'ssssssss', $fname, $lname, $password, $email, $bio, $location, $industry, $salt) or die("bind param");
这篇关于mysqli_stmt_bind_param():变量数与绑定参数中准备好的语句中的参数数不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:mysqli_stmt_bind_param():变量数与绑定参数中准备好的


基础教程推荐
- Libpuzzle 索引数百万张图片? 2022-01-01
- 在 PHP 中强制下载文件 - 在 Joomla 框架内 2022-01-01
- 通过 PHP SoapClient 请求发送原始 XML 2021-01-01
- 在多维数组中查找最大值 2021-01-01
- WooCommerce 中选定产品类别的自定义产品价格后缀 2021-01-01
- mysqli_insert_id 是否有可能在高流量应用程序中返回 2021-01-01
- 如何在 PHP 中的请求之间持久化对象 2022-01-01
- 超薄框架REST服务两次获得输出 2022-01-01
- 在 Woocommerce 中根据运输方式和付款方式添加费用 2021-01-01
- XAMPP 服务器不加载 CSS 文件 2022-01-01