|
|
|
| Такая проблема. Опять же следую инструкциям в книге РНР5 Самоучитель. Создал файл config.php (листинг 15.47) и index.php (листинг 15.49). В браузере ожидаймый результат не появляецца (слово Maks). Т.е. не выполняецца скрипт, взаимодействующий с БД из MySQL. Остальные скрипты, не использующие запросы и поключение к MySQL, работают нормально. Заранее спасибо. | |
|
|
|
|
|
|
|
для: VINNI
(23.11.2006 в 10:53)
| | Просто чистый экран вместо страницы? У вас PHP подключён к Apache как модуль или как CGI? | |
|
|
|
|
|
|
|
для: cheops
(23.11.2006 в 11:54)
| | да. просто чистый экран. РНР установлен в качестве модуля. | |
|
|
|
|
|
|
|
для: VINNI
(23.11.2006 в 15:11)
| | А база данных из config.php и таблица authors существуют? Вы их разворачивали в базе данных?
PS Если бы не подцепилась бы библиотека для расширения php_mysql.dll, то пустой экран характерен для CGI, в случае модуля - PHP бы вывел предупреждение в окно браузера... | |
|
|
|
|
|
|
|
для: cheops
(23.11.2006 в 23:26)
| | да. только что создал базу данных softtime. В ней одна таблица - authors. Я все перепроверл в MySql - т.е. база данных есть, таблица есть, запросы с таблицей выполняются нормально. ТОТ ЖЕ запрос пишу в РНР-файле. Чистое окно браузера (хотя должно появиться слово Maks, как в примере из самоучителя). Вот листинг файлов РНР: (index.php и config.php)
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Выполняем SQL-запрос
$ath = mysql_query("SELECT name FROM authors where id_author=1");
// Обрабатываем результаты запроса
if($ath) echo mysql_result($ath,0,'name');
else exit(mysql_error());
?>
<?php
$dblocation = "localhost";
$dbname = "softtime";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
exit ("<P>В настоящий момент сервер базы данных не доступен, поэтому
корректное отображение страницы невозможно.</P>" );
}
if (!@mysql_select_db($dbname, $dbcnx))
{
exit( "<P>В настоящий момент база данных не доступна, поэтому
корректное отображение страницы невозможно.</P>" );
}
?>
Я чот ваще в растеряности... :-( | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 11:20) |
|
|
для: VINNI
(05.12.2006 в 10:35)
| | если в phpmyadmin выполнить запрос SELECT name FROM authors where id_author=1 результат есть?
и еще попробуйте вот так
if($ath) echo mysql_result($ath,0); | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 11:20)
| | А что такое phpmyadmin?
if($ath) echo mysql_result($ath,0); пробовал - также не работает. | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 11:55) |
|
|
для: VINNI
(05.12.2006 в 11:34)
| | phpmyadmin это web интерфейс к mysql, попробуйте в браузере наберите http://localhost/phpmyadmin может он у вас установвлен, но вы об этом не знаетет
а вобще скрипт а первый взгляд рабочий, и еще желательно проверять количество возвращенных из мускула данных
if (mysql_num_rows($ath)>0) {
траляля
} else {
print "По вашеиму запросу ничего не найдено!";
}
нужно убедится приходит что либо от мускула... | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 11:55)
| | При использовании http://localhost/phpmyadmin - Невозможно отобразить страницу.
При использовании if (mysql_num_rows($ath)>0) {
траляля
} else {
print "По вашеиму запросу ничего не найдено!";
}
также ничего не происходит. Ни "траляля", ни ""По вашеиму запросу ничего не найдено!" | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 13:37) |
|
|
для: VINNI
(05.12.2006 в 12:59)
| | странно, такое впечатление, что:
до этого места выполнение скрипта вобще не доходит, что-то должно было вывести в любом случае...
скрипт перекращает свою работу не выдавая вообще никаких сообщений, и похоже в самом начале. что-то подавляет вывод сосбщений об ошибке это либо @ либо настройки в php.ini
немного передаелаем ваш код:
index.php
<?php
// Устанавливаем соединение с базой данных
$dblocation = "localhost";
$dbname = "softtime";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd) or die (mysql_error());
mysql_select_db($dbname, $dbcnx) or die (mysql_error());
// Выполняем SQL-запрос
$sql="SELECT name FROM authors where id_author=1";
$ath = mysql_query($sql) or die(mysql_error());
// Обрабатываем результаты запроса
if($ath) {
$num_rows=mysql_num_rows($ath);
print "$num_rows<br>"; // debug
if ($num_rows>0) {
print mysql_result($ath,0);
} else {
print "Ничего не найдено!";
}
}
?>
|
так выводит что-нить? | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 13:37)
| | нет.... так тоже ничего... :-((( | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 13:50) |
|
|
для: VINNI
(05.12.2006 в 13:41)
| | мы всеравно его поборим :)), даже интересно стало
для начала, не заметил сразу, вначале не <?php а просто <?
начало должно выглядеть так:
Debug1<br>
<?
print "Debug2<br>";
...
|
если и так ничего не выведет в браузер, то у вас вобще ничего не работает, советую сразу переустановить apache, php, mysql чудес не бывает
и еще, покажите из php.ini строчки error_reporting и display_errors | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 13:50)
| | При использовании <? вместо <?php в браузере появляецца:
0) { print mysql_result($ath,0); } else { print "Ничего не найдено!"; } } ?>
в php.ini несколько строк с error_reporting (все они закомментированы). уточните плиз какую посмотреть.
display_errors = Off | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 14:28) |
|
|
для: VINNI
(05.12.2006 в 14:10)
| | о мама дарагая....
в php.ini
нужно вписать строки
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
и потом перезапустить апач
что теперь пишется в браузере? | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 14:28)
| | 0) { print mysql_result($ath,0); } else { print "Ничего не найдено!"; } } ?> | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 14:47) |
|
|
для: VINNI
(05.12.2006 в 14:40)
| | надабы переустановить пхп, какая версия пхп, апач? какая ось ка кампе?
в php.ini раскоментировать строку
short_open_tag = On или сделать On если он Off (перезапустить апач)
и исходный текст страницы из браузера сюда киньте pls | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 14:47)
| | Код:
<?
// Устанавливаем соединение с базой данных
$dblocation = "localhost";
$dbname = "softtime";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = mysql_connect($dblocation,$dbuser,$dbpasswd) or die (mysql_error());
mysql_select_db($dbname, $dbcnx) or die (mysql_error());
// Выполняем SQL-запрос
$sql="SELECT name FROM authors where id_author=1";
$ath = mysql_query($sql) or die(mysql_error());
// Обрабатываем результаты запроса
if($ath) {
$num_rows=mysql_num_rows($ath);
print "$num_rows<br>"; // debug
if ($num_rows>0) {
print mysql_result($ath,0);
} else {
print "Ничего не найдено!";
}
}
?>
После short_open_tag = On в браузере сообщение:
Fatal error: Call to undefined function mysql_connect() in C:\Apache2.2\htdocs\index2.php on line 8
Апач - 2.2.3, пхп - 5.2.0, мускл - 5.0.27.
Все это только што поставил на свежую винду (ХП Профессионал). На старой было тоже самое (пробовал переустанавливать несколько раз).
Настройку Апача+пхп производил в соответствии с:
http://www.softtime.ru/article/index.php?id_article=95
И еще такая мысль. Я все это пытаюсь запустить на работе, где есть сеть и все компы включены в домен. При установке апач определил его. Вместо него я написал localhost. Может быть чонть изза этого... Хотя я не думаю. Потому што сам сервер апач работает, пхп-код БЕЗ ЗАПРОСОВ мускла выполняется нормально... | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 15:52) |
|
|
для: VINNI
(05.12.2006 в 15:22)
| | ну теперь все прояснилось, домен тут нипричем, следут медитировать вот над этим:
Fatal error: Call to undefined function mysql_connect()
это значит что пхп не знает такой функции, т.е. с базами он не работает... это все настраивается в пхп.ини в секции [MySQL]
создайте файл:
<?
phpinfo();
?>
и посмотрите что там сказано про базы... | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 15:52)
| | сделал. ток где и что смотреть я не знаю... поточнее можно?
и еще вопрос. в чом отличие <? phpinfo(); ?> от <?php phpinfo(); ?> | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 15:52)
| | а сорри... :-) Вот:
[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On
; Maximum number of persistent links. -1 means no limit.
mysql.max_persistent = -1
; Maximum number of links (persistent + non-persistent). -1 means no limit.
mysql.max_links = -1
; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysql.default_port =
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =
; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =
; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =
; Maximum time (in seconds) for connect timeout. -1 means no limit
mysql.connect_timeout = 60
; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 16:26) |
|
|
для: VINNI
(05.12.2006 в 16:02)
| | <? ?> и <?php php?> это теги обозначающие что внутри их идет пхп код который нужно выполнять, впринципе разницы нет никакой <? это простой способ тега <?php...
в выхлопе phpinfo() нужно искать секцию mysql | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 16:26)
| | в выхлопе - это в результате выполнения? :-))) если да, то там нет секции mysql. А код ини-файла я привел... | |
|
|
|
|
автор: Serrrgio (05.12.2006 в 16:41) |
|
|
для: VINNI
(05.12.2006 в 16:31)
| | Поздавляю, ваш пхп не поддерживает mysql, вы наверно взяли
"Кроме полного zip-архива на сайте также доступна для загрузки облегченная версия PHP в виде инсталлятора. Ее размер значительно меньше – около 2,5 Мб из-за того, что в ней отсутствует множество библиотек-расширений"
так?
давайте асю. | |
|
|
|
|
|
|
|
для: Serrrgio
(05.12.2006 в 16:41)
| | да нет, я взял версию с расширениями. вес в архиве - 9,2 метра :-)
аська - 331437211 | |
|
|
|