Fungsi MySQL PHP

PHP MySQL 简介

MySQL 函数允许您访问 MySQL 数据库服务器。

安装

为了能够顺利的使用本类函数,必须在编译 PHP 时添加对 MySQL 的支持。

编译时,只要使用 --with-mysql[=DIR] 配置选项即可,其中可选的 [DIR] 指向 MySQL 的安装目录。

虽然本 MySQL 扩展库兼容 MySQL 4.1.0 及其以后版本,但是它不支持这些版本提供的额外功能。要使用这些功能,请使用 MySQLi 扩展库。

如果要同时安装 mysql 扩展库和 mysqli 扩展库,必须使用同一个客户端库以避免任何冲突。

在 Linux 系统上安装

PHP 4

默认开启了 --with-mysql 选项。此默认行为可以用 --without-mysql 配置选项来禁止。如果启用 MySQL 而不指定安装目录的话,PHP 将使用绑定的 MySQL 客户端连接库。

还有其它应用程序使用 MySQL(例如 auth-mysql)的用户不要用绑定的库,而要指定 MySQL 的安装目录,如这样:--with-mysql=/path/to/mysql。这将强制 PHP 使用随 MySQL 安装的客户端连接库,就可以避免任何冲突。

PHP 5+

MySQL 默认未启用,也没有绑定的 MySQL 库。使用 --with-mysql[=DIR] 配置选项来加入 MySQL 的支持。可以从 MySQL 下载头文件和库。

在 Windows 系统上安装

PHP 4

PHP MySQL 扩展已经编译入 PHP。

PHP 5+

MySQL 默认未启用,因此必须在 php.ini 中激活 php_mysql.dll 动态连接库。此外,PHP 还需要访问 MySQL 客户端连接库。PHP 的 Windows 发行版包括了一个 libmysql.dll,为了让 PHP 能和 MySQL 对话,此文件必须放在 Windows 的系统路径 PATH 中。

Untuk mengaktifkan pustaka ekstensi PHP apapun (misalnya php_mysql.dll), perintah extension_dir harus diatur ke direktori tempat pustaka ekstensi PHP berada. Contoh nilai extension_dir di PHP 5 adalah c:\php\ext.

Keterangan:Jika muncul kesalahan seperti berikut saat memulai server web: "Unable to load dynamic library './php_mysql.dll'" ini disebabkan sistem tidak dapat menemukan php_mysql.dll dan / atau libmysql.dll.

Konfigurasi Runtime

Perilaku fungsi MySQL dipengaruhi oleh pengaturan di php.ini.

Pilihan konfigurasi MySQL:

Nama Default Penerangan Dapat diubah
mysql.allow_persistent "1" Apakah mengizinkan koneksi tetap MySQL. PHP_INI_SYSTEM
mysql.max_persistent "-1" Jumlah maksimum koneksi tetap dalam proses. PHP_INI_SYSTEM
mysql.max_links "-1" Jumlah maksimum koneksi dalam proses, termasuk koneksi tetap. PHP_INI_SYSTEM
mysql.trace_mode "0" Mode penerus. Tersedia sejak PHP 4.3.0. PHP_INI_ALL
mysql.default_port NULL Tentukan port TCP koneksi database yang digunakan secara default. PHP_INI_ALL
mysql.default_socket NULL Nama socket yang digunakan secara default. Tersedia sejak PHP 4.0.1. PHP_INI_ALL
mysql.default_host NULL Alamat server yang digunakan secara default. Tidak berlaku untuk mode keamanan SQL. PHP_INI_ALL
mysql.default_user NULL Nama pengguna yang digunakan secara default. Tidak berlaku untuk mode keamanan SQL. PHP_INI_ALL
mysql.default_password NULL Kata sandi yang digunakan secara default. Tidak berlaku untuk mode keamanan SQL. PHP_INI_ALL
mysql.connect_timeout "60" Detik kelebihan koneksi. PHP_INI_ALL

Jenis Sumber Daya

Dalam modul MySQL digunakan jenis sumber daya yang berbeda. Jenis pertama adalah pengecekan koneksi database, jenis kedua adalah hasil set dari query SQL.

Fungsi MySQL PHP

PHP:指示支持该函数的最早的 PHP 版本。

函数 Penerangan PHP
mysql_affected_rows() 取得前一次 MySQL 操作所影响的记录行数。 3
mysql_change_user() 不赞成。改变活动连接中登录的用户 3
mysql_client_encoding() 返回当前连接的字符集的名称 4
mysql_close() 关闭非持久的 MySQL 连接。 3
mysql_connect() 打开非持久的 MySQL 连接。 3
mysql_create_db() 不赞成。新建 MySQL 数据库。使用 mysql_query() 代替。 3
mysql_data_seek() 移动记录指针。 3
mysql_db_name() 从对 mysql_list_dbs() 的调用返回数据库名称。 3
mysql_db_query()

不赞成。发送一条 MySQL 查询。

使用 mysql_select_db() 和 mysql_query() 代替。

3
mysql_drop_db()

不赞成。丢弃(删除)一个 MySQL 数据库。

Gunakan mysql_query() sebagai pengganti.

3
mysql_errno() 返回上一个 MySQL 操作中的错误信息的数字编码。 3
mysql_error() 返回上一个 MySQL 操作产生的文本错误信息。 3
mysql_escape_string()

不赞成。转义一个字符串用于 mysql_query。

使用 mysql_real_escape_string() 代替。

4
mysql_fetch_array() 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。 3
mysql_fetch_assoc() 从结果集中取得一行作为关联数组。 4
mysql_fetch_field() 从结果集中取得列信息并作为对象返回。 3
mysql_fetch_lengths() 取得结果集中每个字段的内容的长度。 3
mysql_fetch_object() 从结果集中取得一行作为对象。 3
mysql_fetch_row() 从结果集中取得一行作为数字数组。 3
mysql_field_flags() 从结果中取得和指定字段关联的标志。 3
mysql_field_len() 返回指定字段的长度。 3
mysql_field_name() Dapatkan nama kolom yang ditentukan dalam hasil. 3
mysql_field_seek() Atur pointer hasil ke offset kolom yang ditentukan. 3
mysql_field_table() Dapatkan nama tabel tempat kolom ada. 3
mysql_field_type() Dapatkan tipe kolom yang ditentukan dalam hasil. 3
mysql_free_result() Lepaskan memori hasil. 3
mysql_get_client_info() Dapatkan informasi klien MySQL. 4
mysql_get_host_info() Dapatkan informasi host MySQL. 4
mysql_get_proto_info() Dapatkan informasi protokol MySQL. 4
mysql_get_server_info() Dapatkan informasi server MySQL. 4
mysql_info() Dapatkan informasi tentang query terbaru. 4
mysql_insert_id() Dapatkan ID yang dihasilkan oleh operasi INSERT sebelumnya. 3
mysql_list_dbs() Daftar semua database di server MySQL. 3
mysql_list_fields()

tidak disokongkan. Daftar kolom dalam hasil MySQL.

Gunakan mysql_query() sebagai pengganti.

3
mysql_list_processes() Daftar proses MySQL. 4
mysql_list_tables()

tidak disokongkan. Daftar tabel di dalam database MySQL.

Gunakan mysql_query() sebagai pengganti.

3
mysql_num_fields() Dapatkan jumlah kolom dalam hasil. 3
mysql_num_rows() Dapatkan jumlah baris dalam hasil. 3
mysql_pconnect() Buka koneksi tetap ke server MySQL. 3
mysql_ping() Ping koneksi server, jika koneksi tidak ada lakukan koneksi ulang. 4
mysql_query() Kirim permintaan MySQL. 3
mysql_real_escape_string() Eskap karakter khusus yang digunakan dalam kalimat SQL. 4
mysql_result() Dapatkan data hasil. 3
mysql_select_db() Pilih database MySQL. 3
mysql_stat() Dapatkan status sistem saat ini. 4
mysql_tablename() tidak disokongkan. Dapatkan nama tabel. Gunakan mysql_query() sebagai pengganti. 3
mysql_thread_id() Kembalikan ID rangkaian semasa. 4
mysql_unbuffered_query() Hantar satu kerja kerja SQL kepada MySQL (tidak mengambil / mengecache hasil). 4

Konstanta MySQL PHP

Dari versi PHP 4.3.0 ke atas, iaitu diizinkan untuk menentukan lebih banyak tanda penggunaan pelanggan dalam fungsi mysql_connect() dan mysql_pconnect():

PHP:Menunjukkan versi PHP paling awal yang mendukung konstanta ini.

Konstanta Penerangan PHP
MYSQL_CLIENT_COMPRESS Gunakan protokol komunikasi yang dipaksa. 4.3
MYSQL_CLIENT_IGNORE_SPACE Izinkan ruang kosong di belakang nama fungsi. 4.3
MYSQL_CLIENT_INTERACTIVE Waktu lembut interaksi yang diizinkan sebelum koneksi ditutup. 4.3
MYSQL_CLIENT_SSL Gunakan pengenkripsi SSL (hanya tersedia untuk versi pustaka pelanggan MySQL 4+). 4.3

Fungsi mysql_fetch_array() menggunakan konstanta untuk menunjukkan jenis array yang dihasilkan:

Konstanta Penerangan PHP
MYSQL_ASSOC Medan yang dihasilkan menggunakan nama medan sebagai nama indeks array.  
MYSQL_BOTH Medan yang dihasilkan menggunakan nama medan dan indeks angka sebagai nama indeks array.  
MYSQL_NUM

Medan yang dihasilkan menggunakan indeks angka sebagai nama indeks array.

Indeks bermula daripada 0, menunjukkan medan pertama yang dihasilkan.