php - 插入表时出错:参数号无效:绑定变量的数量与标记的数量不匹配
问题描述
我正在尝试将数据插入数据库,但总是出错
我做错了什么?
// Enter the new user in the database
$sql = "INSERT INTO policajt (meno, priezvisko, cislo_odznaku) VALUES (:fname, :lname, :co)";
$stmt = $conn->prepare($sql);
$sql = "INSERT INTO users (policajt_id, username, heslo) VALUES (LAST_INSERT_ID(), :username, :password)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':fname', $_POST['fname'], PDO::PARAM_STR);
$stmt->bindParam(':lname', $_POST['lname'], PDO::PARAM_STR);
$stmt->bindParam(':co', $_POST['co'], PDO::PARAM_STR);
$stmt->bindParam(':username', $_POST['username'], PDO::PARAM_STR);
$password = password_hash($_POST['password'], PASSWORD_BCRYPT);
$stmt->bindParam(':password', $password, PDO::PARAM_STR);
if( $stmt->execute()):
$message = 'Successfully created new user';
else:
$message = 'Sorry there must have been an issue creating your account';
endif;
当我运行代码时,我收到此错误:
警告:PDOStatement::execute(): SQLSTATE[HY093]: 参数号无效:绑定变量的数量与标记的数量不匹配
任何帮助将不胜感激。先感谢您!
解决方案
在您的插入语句中,您没有为要插入的所有字段指定标记。
INSERT INTO policajt (meno, priezvisko, cislo_odznaku) VALUES (:fname, :lname, :co)
应该
INSERT INTO policajt (meno, priezvisko, cislo_odznaku) VALUES (:meno, :fname, :lname, :co)
推荐阅读
- python - 从数据框列表的字典中删除一个元素
- java - 为什么从 USB 读取会阻止我的 Android 应用程序?
- android - 最新的 Android Studio 2020.3.1 在签名 APK 时未显示签名版本选项
- winforms - 如何更改 Devexpress 的行为以生成我的期望视图而不是默认视图
- c# - 将超过 4 GB 的文件上传到 .net Core 5 API
- google-cloud-platform - GCP API Gateway 中的冷启动?
- php - 返回值必须是 ?Illuminate\\Database\\Query\\Builder 类型,App\\Models\\ModelName 返回
- android - 如何设置 ConstraintLayout End of Top Bottom Sheet
- css - Chrome 扩展 Tailwind CSS 干扰了我访问的网站
- python - 如何深度复制具有动态添加属性的对象?