|
|
|
| Даже не знаю, в каком форуме лучше задать этот вопрос.
У меня стоит Денвер, на котором отрабатываю скрипты.
Также использую php для работы, в качестве скриптового языка для обработки текстовых файлов.
Для этого при запуске файла с расширением php запускается обработчик \USR\LOCAL\PHP\PHP.EXE myscript.php
Всё работает.
И вот возникло желание из такого скрипта обратится к базе MySql. То есть не из бровзера обрашаться к какой-то страничке/скрипту, а из комндной строки вызывать скрипт, чтобы он обращался php-шными методами к MySql, который запущен на машине.
Поиск по форуму ничего не подсказал. Только то, что к MySql можно обращаться из командной строки, но мне-т онадо из скрипта. Или вызывать его через exec()? Но как потом передавать/получать запросы? | |
|
|
|
|
|
|
|
для: tuder
(24.05.2007 в 07:25)
| | Собственно, разниицы-то никакой нету. Если в php.ini настройки одинаковые (а в денвере это вообще один php.ini) то откуда бы Вы скрипт ни вызывали - из апача или из командной строки - взаимодействовать с сервером MySQL он тоже будет одинаково.
И скрипты приведенные в учебнике будут работать.
Отчет phpinfo() о MySQL что-нибудь говорит?
А к mysql-клиенту командной строки вообще лучше лишний раз не прикасаться.
Ничего, кроме головной боли с консольными кодировками, от него ожидать не приходится... | |
|
|
|
|
|
|
|
для: 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: | |
|
|
|
|
|
|
|
для: tuder
(24.05.2007 в 18:37)
| | это денвер чтоли? | |
|
|
|
|
|
|
|
для: Trianon
(24.05.2007 в 19:17)
| | >это денвер чтоли?
Вторая строчка его первого сообщения. | |
|
|
|
|
|
|
|
для: mr Bin
(24.05.2007 в 22:15)
| | Я пытаюсь выяснить, два комплекта php у тредстартера работают или один - денверный.
А Вы? | |
|
|
|
|
|
|
|
для: Trianon
(24.05.2007 в 22:18)
| | Один, денверный. Как Денвера установил, потом прописал в систему по расширению PHP запускать php.exe дл обработки. | |
|
|
|
|
|
|
|
для: tuder
(25.05.2007 в 14:57)
| | phpinfo в браузере и из-под командной строки выдает одно и тоже? Или разные вещи?
не весь контент конечно...
Внимание на путь к файлу php.ini и на установленные модули.
Вывод из командной строки переназначается в файл обычным образом
php.exe параметры > выходной_файл | |
|
|
|
|
|
|
|
для: 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
Консольное и веб-инфо - в аттаче. | |
|
|
|
|
|
|
|
для: tuder
(25.05.2007 в 21:27)
| | Вызов консольного скрипта выполняется из W:\home?
Файл /etc/CONFIGURATION.txt содержит корректные настройки?
Не переставляли ли Вы случайно MySQL самостоятельно поверх денвера? | |
|
|
|
|
|
|
|
для: Trianon
(25.05.2007 в 21:41)
| | Нет. Но и перенос его в w:\home и даже в один из виртуальных хостов не избавляет от поиска c:\mysql\...\?.conf | |
|
|
|
|
|
|
|
для: tuder
(25.05.2007 в 21:46)
| | Файла my.ini или my.cnf больше нигде в каталогах не завалялось? | |
|
|
|
|
|
|
|
для: 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: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\ | |
|
|
|