[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQLi->prepare
Anuarbek
Здравствуйте,
возник вопрос с mysqli->prepare, при использовании запроса типа:

SELECT id FROM DR_CMS_Pages WHERE url = ?


все работает отлично. То есть указан один столбец БД, при указании "*" или более одного столбцов - выводится ошибка:

Warning: mysqli_stmt::bind_result() [mysqli-stmt.bind-result]: Number of bind variables doesn't match number of fields in prepared statement in ...


Использую denwer:

Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.3.13

MySQL:

Server version: 5.1.40-community


Вот сам сниппет


public function getPage($pageName) {
/* создаем подготавливаемый запрос */
if ($stmt = $this->mysqli->prepare("SELECT id, title FROM DR_CMS_Pages WHERE url = ?")) {

/* связываем параметры с метками */
$stmt->bind_param("s", $pageName);

/* запускаем запрос */
$stmt->execute();

/* связываем переменные с результатами запроса */
$stmt->bind_result($result);

/* получаем значения */
$stmt->fetch();

/* закрываем запрос */
$stmt->close();

/* возвращаем результат */
return $result;
}
}



Где то нашел инфу что это баг, но все таки лучше в этом самому убедиться.
Всех с наступающим Новым годом и заранее благодарен!
Anuarbek
Всем просмотревшим данный пост - спасибо. Как оказалось дело было в несовместимости версий apache и mysql (хоть это и сборка denwer).

Официально заявленный баг - https://bugs.php.net/bug.php?id=36631
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.