Ошибка HY093 с запросом MySQL PDO

Прочитав все остальные вопросы об HY093, я открою этот вопрос, чтобы выяснить, почему у меня тоже есть это сообщение.

Вот мой стол: Таблица PhpMyAdmin скриншот

И вот моя просьба: (Где $ conn – мое соединение PDO)

$sql = $conn->prepare("INSERT INTO Sites (Email,URL,Title,Description,PageRank,Rewrite,MetaDesc,Origin,BackLink,nbBackLink,RssTitle,RssAddress,SocAddress,SocPostalCode,SocCity,SocCountry,SocTel,Offer,Status,nbHit) VALUES (:Email,:URL,:Title,:Description,:PageRank,:Rewrite,:MetaDesc,:Origin,:BackLink,0,:RssTitle,:RssAddress,:SocAddress,:SocPostalCode,:SocCity,:SocCountry,:SocTel,:Offer,:Status,0)"); $sql->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); $pageRank = new GooglePageRank($_POST["site_url"]); $sql->bindParam(":Email",$_POST["submail"],PDO::PARAM_STR); $sql->bindParam(":URL",$_POST["site_url"],PDO::PARAM_STR); $sql->bindParam(":Title",$_POST["site_title"],PDO::PARAM_STR); $sql->bindParam(":Description",$_POST["site_desc"],PDO::PARAM_STR); $sql->bindParam(":PageRank",$pageRank->PageRank,PDO::PARAM_INT); $sql->bindParam(":Rewrite",stringToRewrite($_POST["site_title"]),PDO::PARAM_STR); $sql->bindParam(":MetaDesc",$_POST["site_desc"],PDO::PARAM_STR); $sql->bindParam(":Origin",$_POST["site_country"],PDO::PARAM_STR); $sql->bindParam(":BackLink",$_POST["site_backlink"],PDO::PARAM_STR); $sql->bindParam(":RssTitle",$_POST["site_rss_title"],PDO::PARAM_STR); $sql->bindParam(":RssAddress",$_POST["site_rss_addr"],PDO::PARAM_STR); $sql->bindParam(":SocAddress",$_POST["soc_addr"],PDO::PARAM_STR); $sql->bindParam(":SocPostalCode",$_POST["soc_cp"],PDO::PARAM_STR); $sql->bindParam(":SocCity",$_POST["soc_city"],PDO::PARAM_STR); $sql->bindParam(":SocCoutry",$_POST["soc_pays"],PDO::PARAM_STR); $sql->bindParam(":SocTel",$_POST["soc_tel"],PDO::PARAM_STR); $offer = $_POST["offer"] == "premium" ? 1 : 0; $status = $_POST["offer"] == "premium" ? 2 : 0; $sql->bindParam(":Offer",$offer,PDO::PARAM_INT); $sql->bindParam(":Status",$status,PDO::PARAM_INT); $sql->execute(); var_dump($sql->errorInfo()); var_dump($sql->errorCode()); 

Любая идея, почему я сохраняю ошибку HY093?

Related of "Ошибка HY093 с запросом MySQL PDO"

У вас есть опечатка в одном из ваших bindParams, что означает, что у вас есть несоответствие в параметрах:

 $sql->bindParam(":SocCoutry",$_POST["soc_pays"],PDO::PARAM_STR); 

должно быть

 $sql->bindParam(":SocCountry",$_POST["soc_pays"],PDO::PARAM_STR); 

Вот интересный случай, который я нашел:

Выполнение этого запроса:

 INSERT INTO videosubmissions (member_login, submission_date) VALUES (":login", ":submission-date") 

Связано с:

 [ ':login', $info['login'], PDO::PARAM_STR ], [ ':submission-date', $submission_date, PDO::PARAM_STR ] 

работает … но

 INSERT INTO videosubmissions (member_login, submission_date) VALUES (:login, :submission-date) 

с ошибкой HY093. Я подозревал, что это было вызвано неявным преобразованием из строки в дату, но попытка явного STR_TO_DATE (format, sDate) не исправила его. Однако, если я процитирую все мои заполнители в других запросах с помощью значения PDO :: PARAM_STR, это вызвало проблемы.

Я знаю, что это на самом деле не отвечает Q, но добавляет еще один случай в микс, чтобы выяснить, что случилось.