Php-cli ve mysql ile ilgili problemler, neden mysql_pconnect () mevcut değildir?

3 Cevap php

Ben Apache ile değil, aynı zamanda komut PHP kullanmak mümkün çeşitli PHP paketlerini yükledim. Hem MySQL veritabanlarına bağlanmak gerekiyor. Oldukça basit değil mi? Ben de öyle düşündüm ama php-cli ile hatasını aşağıdaki alırsınız:

Fatal error: Call to undefined function mysql_pconnect()

Bu gibi bağlı tüm paketler ve konfigürasyonunu kaldırarak sıfırdan başlayarak denedim:

sudo apt-get --purge remove php5 libapache2-mod-php5 php5-cli php5-mysql

Sonra paketlerini yüklemek için aşağıdaki komutu çalıştırmak:

sudo apt-get install php5 libapache2-mod-php5 php5-cli php5-mysql

Sonra cli böyle kullandığı php.ini hangi öğrendim:

php -r "phpinfo();" | grep php.ini

Hangi bana bu verir:

Configuration File (php.ini) Path => /etc/php5/cli/php.ini

Sonra uzantıları bölümünde uncommented 'mysql.so' ettik ama komutu takip ederken i yapmak ve çalışma diyor:

PHP Warning:  Module 'mysql' already loaded in Unknown on line 0

Yani nedense o zaten yüklü olduğunu düşünüyor, ama ya 'mysql.so' olmadan php cli 'mysql_pconnect' işlevini bulmaz sağladı.

Ben varsayılan olarak, kalıcı bağlantıları etkinleştirmek için bir bölümleri var bilmeniz ve standart işlevi 'mysql_connect' da mevcut değildir.

Ne eksik? Teşekkürler!

GÜNCELLEME:

"Phpinfo ();" Bart S. 'php-r tarafından önerildiği gibi | Grep mysql ':

MYSQL_SOCKET => /var/run/mysqld/mysqld.sock
MYSQL_INCLUDE => -I/usr/include/mysql
MYSQL_LIBS => -L/usr/lib -lmysqlclient
mysql.allow_persistent => On => On
... and more

Jaka Jančar itibaren. 'Php-v' gösterir:

(Dahili: 11 Şubat 2009 19:55:22) PHP 5.1.2 (cli)

Ve php Etkileşimli mod 'php-r' var_dump dan (("mysql") extension_loaded); ' hiçbir şey verir!

3 Cevap

php -i | grep mysql

İlk satırı içermelidir:

Configure Command =>  '../configure' ... '--with-mysql=shared,/usr'

Ayrıca kontrol

grep extension_dir /etc/php5/cli/php.ini

Should be something like: extension_dir = /usr/lib/php5/extensions Then check permissions of /usr/lib/php5/extensions/mysql.so and if it's properly linked:

ldd  /usr/lib/php5/extensions/mysql.so

Eğer CLI modunda pconnect cant kullanmak. Sen açık bir bağlantı tutabilir web sunucusu gibi kalıcı bir süreç yok.

Cli modunda pconnect mantıklı mı? belki bu "olarak tasarlanan çalıştığını".

Note: Note, that these kind of links only work if you are using a module version of PHP. See the Persistent Database Connections section for more information.

http://de2.php.net/mysql_pconnect