PHP中连接数据库主要有三种方式:
1.mysql
2.mysqli
3.PDO
我主要讲一下mysqli,mysqli是面向对象,mysqli被封装成一个类,它的构造方法如下:
___construct([string $host[,string $username[,string $password[string $dbname[,int $port[,string $socket]]]]]])
参数说明:
host:连接的服务器地址。(若数据库在同一台电脑上,则写"localhost"或"127.0.0.1"即可;若不在,需写其IP地址)
username:连接数据库的用户名,默认值是服务器进程所有者的用户名。
password:连接数据库的密码,默认值为空。
dbname:连接数据库的名称。
port:TCP端口号。
socket:UNIX域socket。
示例代码如下:
<?php
//连接mysql
$mysqli = @new mysqli("localhost",'root','','myschool');
if($mysqli -> connect_error){
die('连接数据库失败' . $mysqli -> connect_error);
}
?>
其中的@的作用是:屏蔽错误报告。
此处的connect_error是返回上一次连接错误的错误描述。如果没有错误,则返回空值(null);若存在的话,则返回一个string字符串。
设置编码格式:
<?php
$mysqli -> set_charset('utf8');
?>
在执行sql数据库操作时应先设置编码格式(主要针对中文)。
执行sql指令:
<?php
//构建sql
$time = time();
$sql = "insert into user(id,user,pwd,create_time) values(null,'$user','$pwd',$time)";
//执行sql
$res = $mysqli -> query($sql);
if($res === false){
die('执行sql出错' . $sql);
}
?>
query:对数据库执行一次查询。
语法:mysqli::query ( string $query
[, int $resultmode
= MYSQLI_STORE_RESULT ] )
返回值:失败时返回false,通过mysqli_query()成功执行SELECT,SHOW,DESCRIBE或EXPLAIN查询会返回一个mysqli_result对象,其他查询(insert,delete,update)则返回true。
mysqli_result代表从一个数据库查询中获取的结果集。
影响的行数(插入成功的记录的条数)
<?phg
$n = $mysqli -> affected_rows;
if($n > 0){
//显示成功插入一条
show_success('成功注册','register.html',5);
}
?>
mysqli_affected_rows() 函数返回前一次 MySQL 操作(SELECT、INSERT、UPDATE、REPLACE、DELETE)所影响的记录行数。
语法:mysqli_affected_rows(connection);
返回值:一个 > 0 的整数表示所影响的记录行数。0 表示没有受影响的记录。-1 表示查询返回错误。
若需进行加密应使用md5。
md5 — 计算字符串的 MD5 散列值。
返回值:以 32 字符十六进制数字形式返回散列值。
在我们进行一系列的数据库操作以后,不要忘记关闭数据库连接。
<?php
//关闭连接
$mysqli -> close();
?>