[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка данных в mysqli
cyberx
Нашел интересный пример работы с базой mysqli. Вот пример


$mysqli = new mysqli("localhost", "user", "pass", "base");

if (mysqli_connect_errno())
{
exit();
}

if ($stmt = $mysqli->prepare("SELECT `name` FROM `users` WHERE `id`= ?"))
{
$stmt->bind_param("s", $code);
$code = "41'";
$stmt->execute();
$stmt->bind_result($name);
$stmt->fetch();

echo $name;

$stmt->close();
}

$mysqli->close();


Не понял как тут проверять на ошибки. Если делаю обычным методом

if (!$stmt)
{
exit;
}

Но все равно показывает ошибку

Цитата

Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Undefined fieldtype x (parameter 2) in C:\xampp\htdocs\test.com\index.php on line 11


Как проверять данные в таком стиле работы с базой?



Спустя 1 час, 13 минут, 19 секунд (4.05.2010 - 22:01) vasa_c написал(а):
Давить их можно собакой, однако, в вашем случае, по моему, имеет место ошибка в программе, которую нужно давить путём исправления кода.

Спустя 23 минуты, 43 секунды (4.05.2010 - 22:25) cyberx написал(а):
Я нашел этот пример в инете и какие в нем проблемы?

Спустя 4 минуты, 43 секунды (4.05.2010 - 22:29) cyberx написал(а):
Там ошибки нет, это я вызвал специально чтоб показать что даже после проверки показывает сообщение а не exit();

Спустя 9 часов, 45 минут, 26 секунд (5.05.2010 - 08:15) vasa_c написал(а):
Сообщение по всякому будет в момент вызова метода, до того, как дойдёт до exit().

У bind_param() есть возвращаемое значение:
Цитата
Returns TRUE on success or FALSE on failure.

Спустя 3 часа, 21 минута, 7 секунд (5.05.2010 - 11:36) cyberx написал(а):
А можно как то убрать это сообщение? Ну если bind_param() вернет FALSE то cработал exit("error"); Какие там параметры стоит проверять на ошибки и фильтровать? А вообще есть разница в зачете между обычными запросами mysqli и с заданными параметрами или вообще с обычным mysql? Я просто щас нашел этот пример и не знаю стоит ли переходить на mysqli

Спустя 1 час, 8 минут, 1 секунда (5.05.2010 - 12:44) vasa_c написал(а):
mysqli ничем не необычнее mysql. php_mysql - устаревшее расширенее, поэтому на mysqli следует переходить по всякому (или переходить на PDO), вне зависимости, используете ли вы smtp или нет.

Вывод сообщений давится собакой (@) или отключением ошибок. Это если данная ошибка не может быть исправлена руками на этапе программирования, если может - она должна быть исправлена.


Спустя 1 день, 2 часа, 54 минуты, 13 секунд (6.05.2010 - 15:38) cyberx написал(а):
Можно еше вопросик? Возникает проблема с $stmt->num_rows(); постоянно возвращается ноль и $stmt->fetch_assoc(); не работает, только $stmt->fetch(); В чем может быть причина?

Спустя 25 дней, 51 минута, 18 секунд (1.06.2010 - 16:29) Kemel написал(а):
num_rows - переменная

$stmt->num_rows;

через шаблон работает не знаю, для вывода через шаблон используется fetch()
Быстрый ответ:

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