2014-10-12 2 views
0

Попытка сделать инструкцию для подготовки, но по какой-то причине она терпит неудачу, и я получаю errno 0 с ошибкой (текстом), которая является пустой. Чем это вызвано? Уже давно ищут в Интернете.Подтвержденная ошибка получения сообщения 0

<?php 
    $dbh = new mysqli("localhost","root","","honeypot"); 

    if ($dbh->connect_errno) { 
     echo "Connection failed: (" . $dbh->connect_errno . ") " . $dbh->connect_error; 
     die(); 
    } 

    //Prepare 
    if (!($stmt = $dbh->prepare("SELECT tblUsers WHERE UserName = ?"))) { 
     echo "Prepare failed: (" . $dbh->connect_errno . ") " . $dbh->connect_error; 
    } 
?> 
+0

Поскольку вы не выполняете запрос, и вы ничего не обязываете ... Посмотрите на свою '// Подготовку', если. – Darren

+0

@Darren Почему бы не выполнить запрос вызвать 'prepare()' для возврата ошибки? – Barmar

ответ

0

Вы получаете error 0, потому что вы печатаете $dbh->connect_error, но у вас не было ошибкой сделать соединение. Для всего, кроме начального подключения, вы должны использовать $dbh->error.

echo "Prepare failed: (" . $dbh->errno . ") " . $dbh->error; 

У вас возникла ошибка, потому что ваш запрос имеет синтаксическую ошибку. Оно должно быть:

SELECT col1, col2, col3, ... FROM tblUsers WHERE UserName = ? 

Вы упускаете список столбцов и FROM ключевое слово.

Смежные вопросы