Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Работа с базой MySql из обработчика PHP
 
 автор: tuder   (24.05.2007 в 07:25)   письмо автору
 
 

Даже не знаю, в каком форуме лучше задать этот вопрос.

У меня стоит Денвер, на котором отрабатываю скрипты.
Также использую php для работы, в качестве скриптового языка для обработки текстовых файлов.

Для этого при запуске файла с расширением php запускается обработчик \USR\LOCAL\PHP\PHP.EXE myscript.php

Всё работает.
И вот возникло желание из такого скрипта обратится к базе MySql. То есть не из бровзера обрашаться к какой-то страничке/скрипту, а из комндной строки вызывать скрипт, чтобы он обращался php-шными методами к MySql, который запущен на машине.

Поиск по форуму ничего не подсказал. Только то, что к MySql можно обращаться из командной строки, но мне-т онадо из скрипта. Или вызывать его через exec()? Но как потом передавать/получать запросы?

   
 
 автор: Trianon   (24.05.2007 в 09:43)   письмо автору
 
   для: tuder   (24.05.2007 в 07:25)
 

Собственно, разниицы-то никакой нету. Если в php.ini настройки одинаковые (а в денвере это вообще один php.ini) то откуда бы Вы скрипт ни вызывали - из апача или из командной строки - взаимодействовать с сервером MySQL он тоже будет одинаково.
И скрипты приведенные в учебнике будут работать.

Отчет phpinfo() о MySQL что-нибудь говорит?

А к mysql-клиенту командной строки вообще лучше лишний раз не прикасаться.
Ничего, кроме головной боли с консольными кодировками, от него ожидать не приходится...

   
 
 автор: tuder   (24.05.2007 в 18:37)   письмо автору
 
   для: Trianon   (24.05.2007 в 09:43)
 

Не получается.

Если бы ещё подсказали, как phpinfo в файл вывести или чтобы он выдал только инфу о мускуле.
А то при запуске скрипта с ним из консоли - информация о мускуле "улетает" вверх и стирается.

При запуске такого вот скрипта:

<?
$server
="localhost"//server name
$user="tuder";      //username of your database
$pass="pass";            //password of your database
$dbname="newbase";    //database name

$dbh=mysql_connect ($server$user$pass)
 or die (
'I cannot connect to the database because: ' mysql_error());
echo 
$dbh;
mysql_select_db ($dbname);

echo 
"JHi!";
?>


Выдаётся такое:

File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the
'c:\mysql\share\charsets\Index' file
X-Powered-By: PHP/4.4.2
Content-type: text/html

Resource id #1JHi!

Хотя сроду мускул в c:\mysql - не лежал.

Минимум
с:\web\usr\local\mysql4
а подключается web как диск W:

   
 
 автор: Trianon   (24.05.2007 в 19:17)   письмо автору
 
   для: tuder   (24.05.2007 в 18:37)
 

это денвер чтоли?

   
 
 автор: mr Bin   (24.05.2007 в 22:15)   письмо автору
 
   для: Trianon   (24.05.2007 в 19:17)
 

>это денвер чтоли?
Вторая строчка его первого сообщения.

   
 
 автор: Trianon   (24.05.2007 в 22:18)   письмо автору
 
   для: mr Bin   (24.05.2007 в 22:15)
 

Я пытаюсь выяснить, два комплекта php у тредстартера работают или один - денверный.
А Вы?

   
 
 автор: tuder   (25.05.2007 в 14:57)   письмо автору
 
   для: Trianon   (24.05.2007 в 22:18)
 

Один, денверный. Как Денвера установил, потом прописал в систему по расширению PHP запускать php.exe дл обработки.

   
 
 автор: Trianon   (25.05.2007 в 15:15)   письмо автору
 
   для: tuder   (25.05.2007 в 14:57)
 

phpinfo в браузере и из-под командной строки выдает одно и тоже? Или разные вещи?
не весь контент конечно...
Внимание на путь к файлу php.ini и на установленные модули.

Вывод из командной строки переназначается в файл обычным образом
php.exe параметры > выходной_файл

   
 
 автор: tuder   (25.05.2007 в 21:27)   письмо автору
 
   для: Trianon   (25.05.2007 в 15:15)
 

Относительно MySQL - вроде одно и то же:

mysqlMySQL Support    enabled
Active Persistent Links     0 
Active Links     0 
Client API version     3.23.49 

Directive    Local Value    Master Value
mysql.allow_persistent    On    On
mysql.connect_timeout    60    60
mysql.default_host    no value    no value
mysql.default_password    no value    no value
mysql.default_port    no value    no value
mysql.default_socket    no value    no value
mysql.default_user    no value    no value
mysql.max_links    Unlimited    Unlimited
mysql.max_persistent    Unlimited    Unlimited
mysql.trace_mode    Off    Off


Путь к ини тоже один и тот же.
Configuration File (php.ini) Path W:\usr\local\php\php.ini

Консольное и веб-инфо - в аттаче.

   
 
 автор: Trianon   (25.05.2007 в 21:41)   письмо автору
 
   для: tuder   (25.05.2007 в 21:27)
 

Вызов консольного скрипта выполняется из W:\home?
Файл /etc/CONFIGURATION.txt содержит корректные настройки?
Не переставляли ли Вы случайно MySQL самостоятельно поверх денвера?

   
 
 автор: tuder   (25.05.2007 в 21:46)   письмо автору
 
   для: Trianon   (25.05.2007 в 21:41)
 

Нет. Но и перенос его в w:\home и даже в один из виртуальных хостов не избавляет от поиска c:\mysql\...\?.conf

   
 
 автор: Trianon   (25.05.2007 в 21:55)   письмо автору
 
   для: tuder   (25.05.2007 в 21:46)
 

Файла my.ini или my.cnf больше нигде в каталогах не завалялось?

   
 
 автор: tuder   (25.05.2007 в 21:58)   письмо автору
 
   для: Trianon   (25.05.2007 в 21:41)
 

Вроде не переставлял. Все настройки правильны.

Всё. Отбой. Поиск - где же собака порылась - выявил readme.txt с информацией по Денверу:


  - Выяснена причина засорения лог-файлов Apache сообщениями вида:
      File 'c:\mysql\\share\charsets\?.conf' not found (Errcode: 2)
      Character set '#17' is not a compiled character set and is
      not specified in the 'c:\mysql\\share\charsets\Index' file
    Как оказалось, это "ругается" PHP, а вовсе на MySQL. В php4ts.dll
    жестко задан путь "C:/mysql", и именно там он ищет файлы. Вообще,
    это уже не первый случай PHP-шников жестко завязываться за конкретные
    пути (php_mime_magic.dll, например, нерабочий по той же причине).
    Тестирование показало, что описанные только что сообщения никак
    не влияют на правильность сортировки и работы с MySQL. Чтобы лог-файлы
    не засорялись, /usr/local/apache/logs/error.log удаляется перед каждым
    запуском Apache.


Так что, этот мусор на работоспособность не влияет, а работать - заработало.

Благодарю за толчок в нужном направлении. :-)

   
 
 автор: tuder   (25.05.2007 в 21:41)   письмо автору
 
   для: tuder   (25.05.2007 в 21:27)
 

Собственно добился желаемого. Просто надо было непосредственно указывать идентификатор открытой базы при выборе таблицы:

mysql_select_db ("links", $dbh);

Но вот что за файл конфигурации ищет там где его сроду не было, причём тут кодировка и почему всё это выдаётся еще ДО выдачи заголовка интерпретатора:

File 'c:\mysql\share\charsets\?.conf' not found (Errcode: 2)
Character set '#51' is not a compiled character set and is not specified in the
'c:\mysql\share\charsets\Index' file
X-Powered-By: PHP/4.4.2
Content-type: text/html

Когда даже папка с мускулом обзывается
W:\usr\local\mysql4\

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования