Возможный сценарий
Я не могу найти, где мой код поступил не так. Вот моя полная ошибка:
Ошибка анализа: ошибка синтаксиса, неожиданный T_VARIABLE в строке x
Что я пытаюсь
$sql = 'SELECT * FROM dealer WHERE id="'$id.'"';
Ответ
Ошибка анализа: проблема с синтаксисом вашей программы, например, оставляя точку с запятой от конца инструкции или, как и в случае выше, пропускает оператор
.
.Простыми словами это синтаксическая ошибка, означающая, что в вашем коде есть что-то, что помешает правильному анализу и поэтому работает.
Что вам нужно сделать, так это внимательно проверить строки, где ошибка для любых простых ошибок.
Это сообщение об ошибке означает, что в строке x файла интерпретатор PHP ожидал увидеть открытую круглую скобку, но вместо этого он встретил нечто, называемое
T_VARIABLE
. Эта вещьT_VARIABLE
называетсяtoken
. Это способ интерпретации PHP-интерпретатора различных фундаментальных частей программ. Когда интерпретатор читает в программе, он переводит то, что вы написали, в список токенов. Где бы вы ни разместили переменную в своей программе, в списке интерпретатора есть токенT_VARIABLE
.Хорошо читается: Список токенов парсера
So убедитесь, что вы включили хотя бы
E_PARSE
в своемphp.ini
. Ошибки анализа не должны существовать в производственных сценариях.Я всегда рекомендовал добавить следующий оператор при кодировании:
error_reporting(E_ALL);
Также неплохо использовать среду IDE, которая позволит вам знать ошибки разбора при наборе текста. Вы можете использовать:
- NetBeans (прекрасный мир красоты, бесплатное программное обеспечение) (лучший, на мой взгляд)
- PhpStorm (дядя Гордон любит это: P, платный план, содержит проприетарное и бесплатное программное обеспечение)
- Eclipse (красота и зверь, бесплатное программное обеспечение)
Вопросы, относящиеся:
Необходимо, вероятно, использовать Console.app для просмотра файлов журнала. Это - purdy.
Выбор Ваше устройство слева и фильтр обмениваются сообщениями справа:
Когда в сомнении, всегда существует man syslog
.
можно найти сообщения в /var/log/syslog
; моя машина настраивается из поля, чтобы только включать сообщения высокого уровня, таким образом, Вы, возможно, должны иметь свои настройки.
можно также прочитать сообщения до системный журнал (1) или создать тестовое сообщение с командой как
$ syslog -s -l INFO "Hello, world."
, используют серьезность P ("паника"), и Вы получите захватывающее сообщение на своей консоли сразу.
Основываясь на ответе Charlie, я хотел бы добавить, что необходимо смотреть на страницу справочника syslog.conf(5)
и также посмотреть на файл /etc/syslog.conf
(который является, где конфигурация системного журнала определяется по умолчанию и также, поскольку я вижу его на OS X 10.5.x).
Проверка вызова openlog
где-нибудь в программе. После вызова openlog
, syslog
сохранит свой вывод в этот лог-файл вместо места по умолчанию.
Mac OS X реализует суперсет функциональности syslog. Все syslog есть, но в составе ASL.
Консоль, упомянутая Мэтью Шинкелем в его ответе, является графическим интерфейсом на ASL. Она покажет вам все сообщения, которые существуют в базе данных, в том виде, как они получены по запросам, перечисленным на боковой панели. По умолчанию есть два запроса; один показывает только сообщения, отправленные с помощью подсистемы Console (как используется, среди прочего, в NSLog
), в то время как другой показывает все сообщения журнала. Проверьте запрос всех сообщений; скорее всего, там вы найдете ваше сообщение.
Это "все" идет со звездочкой. Если вы посмотрите в /etc/asl.conf, то увидите эту строку:
# save everything from emergency to notice
? [<= Level notice] store
К счастью, в вашем случае сообщение пройдет эту проверку, так как предупреждающие перевесы (это меньшее число, чем) замечание.