Нашел интересный пример работы с базой
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;
}
Но все равно показывает ошибку
Как проверять данные в таком стиле работы с базой?
Спустя 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()