dongzhuo3376 2016-07-24 04:53
浏览 201

发生错误SQLSTATE [HY093]:参数号无效:未定义参数

The following code fails with the error "An error occuredSQLSTATE[HY093]: Invalid parameter number: parameter was not defined". Please help to solve this. Thank you

$email = $_POST['email'];
           $username = $_POST['username'];
           $password = password_hash($_POST['password'], PASSWORD_DEFAULT);
           $mobileno = $_POST['mobileno'];        
           $organization = $_POST['organization'];
           $orgaddress = $_POST['orgaddress'];
           try
           {
                $sqlInsert = "INSERT INTO users (username, password, email, mobileno, organization, orgaddress, join_date) 
                     VALUES (:username, :password, :email, :mobileno, :organization, :orgaddress, now())";

                $statement = $db->prepare($sqlInsert);
                $statement->execute(array(':username' => $username, ':password' => $password, ':email' => $email, ':mobileno' => $mobileno, 
                     ':organization' => $organization, ' :orgaddress' => $orgaddress));

                if($statement->rowCount() == 1)
                {
                    $result = "<p style='padding:20px; font-size: 15px; color:green;'>Registration Successful </p>"; 
                }
           }
           catch (PDOException $ex)
           {
                $result = "<p style='padding:20px; font-size: 15px; color:red;'>An error occured" . $ex->getMessage() ."</p>";
           } 
  • 写回答

1条回答 默认 最新

  • dtlhy0771 2016-07-24 12:45
    关注

    Instead of putting an associative array in the execute function, you need to call the bindParam or bindValue function like so:

    $statement->bindValue(':key', $value)

    评论

报告相同问题?

悬赏问题

  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?