Пытаюсь сделать подготовительный оператор, но по какой-то причине мне это не удается, и я получаю errno 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;
}
?>
Вы получаете error 0
потому что ты печатаешь $dbh->connect_error
, но у вас не было ошибки при установлении соединения. Для всего, кроме первоначального подключения, вы должны использовать $dbh->error
,
echo "Prepare failed: (" . $dbh->errno . ") " . $dbh->error;
Вы получаете ошибку, потому что ваш запрос имеет синтаксическую ошибку. Так должно быть:
SELECT col1, col2, col3, ... FROM tblUsers WHERE UserName = ?
Вы пропускаете список столбцов и FROM
ключевое слово.
Других решений пока нет …