Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/43: Рейтинг темы: голосов - 43, средняя оценка - 4.93
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454

Узнать номер строки основного скрипта

14.01.2009, 18:43. Показов 8563. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть скрипт index.php
Есть скрипт mysql.php, в котором описан класс для работы с MySQL.
В index.php я подключаю mysql.php:
require_once "mysql.php"
и могу выполнять запросы. Но если запрос не удался, то вывожу сообщение об ошибке.
Подскажите, как мне в этом сообщении указать номер строки основного скрипта (index.php), где запрос не удался?
Например, содержимое index.php:
PHP
1
2
3
4
<?php
$DB = new MySQLDB("127.0.0.1","login","pas","base");
$DB->query("SELECT * FROM tab1;"); // строка №3
?>
А содержимое mysql.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MySQLDB
{
........
........
  public function query($s)
  {
    if (!($this->resid = @mysql_query($s,$this->sqlid)))  // допустим, это строка №44
    {
      echo "Не удалось отправить запрос MySQL на строке ".__LINE__;
      exit;
    }
  }
.......
.......
}
При этом он укажет, что ошибка на строке 46, т.к. __LINE__ вернёт номер строки в текущем файле. А как мне заставить его указать 3 строку (файла index.php, из которого идёт обращение к функции) ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.01.2009, 18:43
Ответы с готовыми решениями:

Как узнать номер следующей строки в DataGridView и вывести номер в textbox
Допустим у нас есть таблица и в ней заполнено две строки, тогда в текстбоксе мы должны получить номер 3.

Как узнать номер строки без проверки каждой строки
Можно ли как-то узнать номер строки в которой содержится определённый символ без for-сирования? То есть без проверки каждой строки. ...

Функцию узнающая текущий номер строки скрипта.
Кто предложит функцию узнающую текущий номер строки скрипта!!! У меня есть 1000 вызовов одной и той-же функции. Чтобы знать откуда...

7
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
14.01.2009, 19:14
хмм.. думаю так неполучится, только если так:
$DB->query("SELECT * FROM tab1;", __LINE__); // строка №3
неудобно правда

зы: одновременно одно и то же накатали
1
365 / 68 / 2
Регистрация: 25.09.2008
Сообщений: 401
14.01.2009, 19:14
а вскидку приходит в голову способ, передавать в функцию query не только запрос но и строку из которой он был вызван, и уже внутри функции брать её +) (собственно второй аргумент добавить и в него __LINE__ вставить )

З.Ы. вероятно есть более элегантный и быстродейственный(мы теряем быстродействие т.к. каждый раз при запросе будем узнавать строчку, вместо того, чтобы узнавтаь её только при ошибке) способ, но мне на вскидку только такой вариант в голову пришёл +)))

Добавлено через 46 секунд
ыыы=)) собсвенно то же самое что и GаlаX-у мне в голову пришло +))
1
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
14.01.2009, 21:42  [ТС]
Жаль. А то бывает много запросов... и во время ошибки приходится долго искать, который запрос неправильный. Лишний параметр тоже не хотелось бы передавать... ладно, там видно будет. Можно будет его сделать не обязательным и передавать его только в сложных местах. Спасибо за помощь.
0
1 / 1 / 0
Регистрация: 08.11.2009
Сообщений: 6
26.07.2010, 10:44
По моему правильнее будет так

PHP
1
2
3
4
5
6
<?php
$DB = new MySQLDB("127.0.0.1","login","pas","base");
if(!$DB->query("SELECT * FROM tab1;"){
%сообщение об ошибке%
exit;}
?>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MySQLDB
{
........
........
  public function query($s)
  {
    if (!($this->resid = @mysql_query($s,$this->sqlid)))  // допустим, это строка №44
    {
      return false;
    }
  }
.......
.......
}
А еще можно глобальный массив ошибок создать и заносить в него случившиеся ошибки, тогда ты сможешь отследить, историю ошибок
1
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
26.07.2010, 11:24  [ТС]
Alzasr, лишнее действие в каждом скрипте. Мне так лениво делать
0
Благотворец
 Аватар для arvitaly
142 / 122 / 13
Регистрация: 29.04.2009
Сообщений: 537
26.07.2010, 22:29
Лучший ответ Сообщение было отмечено как решение

Решение

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class MySQLDB
{
........
........
  public function query($s)
  {
    if (!($this->resid = @mysql_query($s,$this->sqlid)))  // допустим, это строка №44
    {
         list ($di) = debug_backtrace();
         die ("Ошибка произошла в файле - " . $di["file"] . ", в строке - " .  $di["line"]);
    }
  }
.......
.......
}
3
Почетный модератор
 Аватар для Humanoid
11556 / 4351 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
26.07.2010, 22:39  [ТС]
arvitaly, то что надо. Спасибо большое. Очень удобная функция.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.07.2010, 22:39
Помогаю со студенческими работами здесь

Узнать номер строки
Здравствуйте, помогите ,пожалуйста, узнать номер строки, которая включает в себя текст. скачиваю веб страницу: string otvet = new...

Узнать номер строки в txt
Добро всем! :senor: Как узнать номер строки в которой находится искомый текст? Как вывести в Мемо определенную строку из txt зная номер...

Узнать номер строки в datagrid
Здравствуйте! есть на форме datagridview, как мне узнать номер выделенной строчки. Т е я нажимаю на первый столбец первой строки(или на...

Узнать номер строки в ListBox!
у меня есть ListBox там к примеру 50 строчок как проверить если там нажата первая строка выполняеться одно действие если вторая то другое??

Последовательный запуск скриптов из основного скрипта
Уважаемые Повершелисты! Помогите пожалуйста: задача следующая - есть главный скрипт(main) и много других скриптов(run_1, run_2 и т.д.),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru