За последние 24 часа нас посетили 22936 программистов и 1239 роботов. Сейчас ищут 774 программиста ...

Экранирование ошибки подключения к Mysql

Тема в разделе "PHP для новичков", создана пользователем Eser, 15 мар 2010.

  1. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    Подскажите люди знающие.
    В начальный момент у меня нет БД.
    В скрипте (как раз тот что бд создает и работает с ней) строки для работы с БД прописаны, соответственно вылазит сообщение:
    "Warning: mysql_num_rows(): supplied argument is not a valid MySQL"
    Мне нужно это сообщение как то скрыть, либо к нему дописать свое сообщение (Что мол БД пока нет).
    Как это можно сделать.
     
  2. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    символ собаки тормозит вывод ошибки и ошибку можно перенаправить на свой файл ошибки...
     
  3. Eser

    Eser Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    141
    Симпатии:
    0
    где эту @ ставить?
     
  4. vuzy

    vuzy Активный пользователь

    С нами с:
    11 мар 2010
    Сообщения:
    199
    Симпатии:
    0
    Адрес:
    киев
    там где ты приказываешь ей показатся... например

    PHP:
    1.  
    2. <?
    3. mysql_query($sql) or die (@mysql_error());
    4. ?>
    5.  
    но делать так не советую если ошибка выскакивает то значит скрипт не отлажен... Так делать надо только в тех случаях когда он полноценно работает с учетом функций mysql_escape_string() и html_special_char() что б если ввели совсем что то несусветное то хоть пользователь не подумает что ресурс накрылся...
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    PHP:
    1. $res = mysql_query(...);
    2. if ($res) {
    3.      echo 'Получено: ' . mysql_num_rows($res) . ' записей';
    4. } else {
    5.      echo 'Ничего нету';
    6. }
     
  6. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    1)Если уж говорить про @ то:
    PHP:
    1. <?php
    2. @mysql_query($sql);
    Далее...
    Можно запретить вывод всех ошибок (если хостер позволяет):
    Код (Text):
    1. ini_set("display_errors", "off");
    Можно задать функцию для обработки ошибок с помощью set_error_handler.

    Можно вывести свою инфу в конкретном случае:
    PHP:
    1. <?php
    2. @mysql_query($sql) or die ("Базы нет!");
     
  7. кхм.
    PHP:
     
  8. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Забанить за такие советы.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    mysql_query не создает ошибок, если было создано подключение к базе. Вот такая запись еще имеет смысл:
    PHP:
    1. @mysql_connect(...) or die("Базы нет");
    ошибки могут создавать функции, которые принимают результат работы функции mysql_query, т.к. она может вернуть false, но никак не вызвать ошибку.
     
  10. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Сегодня не день Бэкхэма.
     
  11. Кстати, мне одному кажется что такая запись - бессмысленное нелогичное уебанство?
     
  12. yok

    yok Активный пользователь

    С нами с:
    15 мар 2010
    Сообщения:
    18
    Симпатии:
    0
    Eser вывод сообщения о ошибке в период отладки это необходимо, после отладки отключишь все сообщения,
    <?php
    error_reporting(E_ALL);
    правда в отношении пхп это, а к мускулу не уверен.
    В твоем случае о функции mysql_num_rows(), точно не знаю, попробуй переведи, но возможно ты написал функцию не с резултатом запроса работающую.
    $sql_id=mysql_query("SELECT.....l..
    $num=mysql_num_rows($sql_id);