PHP 操作MySQL 的三种方式
MySQL: 非永久连接, 性能比较低, PHP 5.5 以后被废弃
MySQLi: 永久连接, 减轻服务器压力, 只支持 MySQL
PDO: 能实现 MySQL 的常用功能, 支持大部分数据库
MySQL 方式连接数据库
连接数据库
mysql_connect($server, $username, $password)
选择数据库
mysql_select_db($database_name)
设置字符集
mysql_set_charset($charset)
关闭数据库
mysql_close($link)
header('content-type: text/html;charset=utf-8');
// 连接数据库
$link = mysql_connect('localhost', 'root', 'root') or die('连接数据库失败!');
// 选择数据库
mysql_select_db('test') or die('选择的数据库不存在!');
// 设置字符集
mysql_set_charset('utf8');
// 关闭数据库
mysql_close($link);
MySQL方式执行 SQL 语句
新建数据表users
mysql_query($query)
mysql_query() 对 INSERT, UPDATE, DELETE, DROP 之类的操作, 执行成功时返回 true, 出错时返回 false
(a) 添加数据:
header('content-type: text/html;charset=utf-8');
// 连接数据库
$link = mysql_connect('localhost', 'root', 'root') or die('连接数据库失败!');
// 选择数据库
mysql_select_db('test') or die('选择的数据库不存在!');
// 设置字符集
mysql_set_charset('utf8');
// 添加数据
$insert = mysql_query("INSERT INTO users VALUES(1, 'guoyou.li', 24)");
if ($insert) {
echo '添加成功!';
} else {
echo '添加失败!';
}
// 关闭数据库
mysql_close($link);
(b) 修改数据:
// 修改数据
$update = mysql_query("UPDATE users SET age=23 WHERE id=1") or die('修改失败!');
echo '修改成功!';
(c) 删除数据:
// 删除数据
$delete = mysql_query("DELETE FROM users WHERE id=1") or die('删除失败');
echo '删除成功!';
(d) 删除数据表:
// 删除数据表
$delete = mysql_query("DROP TABLE users") or die('删除失败');
echo '删除成功!';
SELECT 操作, 执行成功会返回一个 resource, 如果查询出现错误则返回 false,
返回的结果资源应该传递给 mysql_fetch_array($result, $result_type)和其他函数来处理结果, 取出返回的数据,
$result_type 参数: MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH
其他函数:
mysql_fetch_row(): 从结果集中取得一行作为枚举数组,
mysql_fetch_assoc() 从结果集中取得一行作为关联数组
header('content-type: text/html;charset=utf-8');
// 连接数据库
$link = mysql_connect('localhost', 'root', 'root') or die('连接数据库失败!');
// 选择数据库
mysql_select_db('test') or die('选择的数据库不存在!');
// 设置字符集
mysql_set_charset('utf8');
// 查询所有数据
$result = mysql_query("SELECT * FROM users");
var_dump(mysql_fetch_row($result));
/*
* 结果为 索引数组 不常用
array(3) {
[0]=> string(1) "1"
[1]=> string(6) "guoyou"
[2]=> string(8) "12345678"
}
*/
var_dump(mysql_fetch_assoc($result));
/*
* 结果为关联数组
array(3) {
["id"]=> string(1) "1"
["username"]=> string(6) "guoyou"
["password"]=> string(8) "12345678"
}
*/
var_dump(mysql_fetch_array($result));
/*
* 当第二个参数为空时: 结果为 索引+关联数组
array(6) {
[0]=>
string(1) "1"
["id"]=>
string(1) "1"
[1]=>
string(6) "guoyou"
["username"]=>
string(6) "guoyou"
[2]=>
string(8) "12345678"
["password"]=>
string(8) "12345678"
}
*/
var_dump(mysql_fetch_array($result, MYSQL_NUM));
/*
* 参数 MYSQL_NUM 结果为: 索引数组
array(3) {
[0]=>
string(1) "1"
[1]=>
string(6) "guoyou"
[2]=>
string(8) "12345678"
}
*/
var_dump(mysql_fetch_array($result, MYSQL_ASSOC));
/*
* 参数 MYSQL_ASSOC 结果为:关联数组
array(3) {
["id"]=>
string(1) "1"
["username"]=>
string(6) "guoyou"
["password"]=>
string(8) "12345678"
}
*/
var_dump(mysql_fetch_array($result, MYSQL_BOTH));
/*
* 参数为 MYSQL_BOTH: 结果我索引+关联数组
array(6) {
[0]=>
string(1) "1"
["id"]=>
string(1) "1"
[1]=>
string(6) "guoyou"
["username"]=>
string(6) "guoyou"
[2]=>
string(8) "12345678"
["password"]=>
string(8) "12345678"
}
*/
// 关闭数据库
mysql_close($link);
MySQLi 面向过程方式操作数据库
面向过程方式连接数据库
$connect = mysqli_connect('host', 'username', 'password', 'database');
执行 SQL 语句
$result = mysqli_query($connect, $sql);
获取结果集
mysqli_fetch_all($result, $result_type);
同样的, $result_type 也有对应的 MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH
header('content-type: text/html;charset=utf-8');
// 连接数据库
$connect = mysqli_connect('localhost', 'root', 'root', 'test');
// 设置字符集
mysqli_query($connect, 'set names utf8');
// 插入第二条数据
//mysqli_query($connect, "INSERT INTO users VALUES(2,'you','4535635')");
// 查询数据
$sql = "SELECT * FROM users";
$result = mysqli_query($connect, $sql);
var_dump(mysqli_fetch_all($result));
/*
* 不传第二个参数:
array(2) {
[0]=>
array(3) {
[0]=>
string(1) "1"
[1]=>
string(6) "guoyou"
[2]=>
string(8) "12345678"
}
[1]=>
array(3) {
[0]=>
string(1) "2"
[1]=>
string(3) "you"
[2]=>
string(7) "4535635"
}
}
*/
var_dump(mysqli_fetch_all($result,MYSQLI_ASSOC));
/*
* 第二个参数: MYSQLI_ASSOC
array(2) {
[0]=>
array(3) {
["id"]=>
string(1) "1"
["username"]=>
string(6) "guoyou"
["password"]=>
string(8) "12345678"
}
[1]=>
array(3) {
["id"]=>
string(1) "2"
["username"]=>
string(3) "you"
["password"]=>
string(7) "4535635"
}
}
*/
// 关闭数据库
mysqli_close($connect);
*/
// 关闭数据库
mysqli_close($connect);
PDO 后面再学习.