首页 > 解决方案 > 插入表时出错:参数号无效:绑定变量的数量与标记的数量不匹配

问题描述

我正在尝试将数据插入数据库,但总是出错

我做错了什么?

// 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]: 参数号无效:绑定变量的数量与标记的数量不匹配

任何帮助将不胜感激。先感谢您!

标签: php

解决方案


在您的插入语句中,您没有为要插入的所有字段指定标记。

INSERT INTO policajt (meno, priezvisko, cislo_odznaku) VALUES (:fname, :lname, :co)

应该

  INSERT INTO policajt (meno, priezvisko, cislo_odznaku) VALUES (:meno, :fname, :lname, :co)

推荐阅读