Source code editor What Is Ajax
↑
PHP is a server-side, HTML-embedded scripting language that may be used to create dynamic Web pages. It is available for most operating systems and Web servers, and can access most common databases, including MySQL. PHP may be run as a separate program or compiled as a module for use with the Apache Web server.
PHP actually provides two different MySQL API extensions:
mysql
: Available for PHP versions 4 and 5, this extension is intended for use with MySQL versions prior to MySQL 4.1. This extension does not support the improved authentication protocol used in MySQL 5.0, nor does it support prepared statements or multiple statements. If you wish to use this extension with MySQL 5.0, you will likely want to configure the MySQL server to use the --old-passwords option (see Section B.1.2.3, “Client does not support authentication protocol
”). This extension is documented on the PHP Web site at http://php.net/mysql.
mysqli
- Stands for “MySQL, Improved”; this extension is available only in PHP 5. It is intended for use with MySQL 4.1.1 and later. This extension fully supports the authentication protocol used in MySQL 5.0, as well as the Prepared Statements and Multiple Statements APIs. In addition, this extension provides an advanced, object-oriented programming interface. You can read the documentation for the mysqli
extension at http://php.net/mysqli. A helpful article can be found at http://www.zend.com/php5/articles/php5-mysqli.php.
If you're experiencing problems with enabling both the mysql
and the mysqli
extension when building PHP on Linux yourself, see Section 22.3.2, “Enabling Both mysql
and mysqli
in PHP”.
The PHP distribution and documentation are available from the PHP Web site. MySQL provides the mysql
and mysqli
extensions for the Windows operating system for MySQL versions as of 5.0.18 on http://dev.mysql.com/downloads/connector/php/. You can find information why you should preferably use the extensions provided by MySQL on that page.
Error: Maximum Execution Time Exceeded
: This is a PHP limit; go into the php.ini
file and set the maximum execution time up from 30 seconds to something higher, as needed. It is also not a bad idea to double the RAM allowed per script to 16MB instead of 8MB.
Fatal error: Call to unsupported or undefined function mysql_connect() in ...
: This means that your PHP version isn't compiled with MySQL support. You can either compile a dynamic MySQL module and load it into PHP or recompile PHP with built-in MySQL support. This process is described in detail in the PHP manual.
Error: Undefined reference to 'uncompress'
: This means that the client library is compiled with support for a compressed client/server protocol. The fix is to add -lz
last when linking with -lmysqlclient
.
Error: Client does not support authentication protocol
: This is most often encountered when trying to use the older mysql
extension with MySQL 4.1.1 and later. Possible solutions are: downgrade to MySQL 4.0; switch to PHP 5 and the newer mysqli
extension; or configure the MySQL server with --old-passwords
. (See Section B.1.2.3, “Client does not support authentication protocol
”, for more information.)
Those with PHP4 legacy code can make use of a compatibility layer for the old and new MySQL libraries, such as this one: http://www.coggeshall.org/oss/mysql2i.
If you're experiencing problems with enabling both the mysql
and the mysqli
extension when building PHP on Linux yourself, you should try the following procedure.
Configure PHP like this:
./configure --with-mysqli=/usr/bin/mysql_config --with-mysql=/usr
Edit the Makefile
and search for a line that starts with EXTRA_LIBS
. It might look like this (all on one line):
EXTRA_LIBS = -lcrypt -lcrypt -lmysqlclient -lz -lresolv -lm -ldl -lnsl -lxml2 -lz -lm -lxml2 -lz -lm -lmysqlclient -lz -lcrypt -lnsl -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lcrypt
Remove all duplicates, so that the line looks like this (all on one line):
EXTRA_LIBS = -lcrypt -lcrypt -lmysqlclient -lz -lresolv -lm -ldl -lnsl -lxml2
Build and install PHP:
make make install