php数据库接口.doc
文本预览下载声明
php数据库接口
三套方案 mysql mysqli pdo
1、mysql扩展库 效率不怎么高的数据库
2、mysqli扩展库
3、pdo 可以操作任何一种数据库
mysql扩展库和mysqli的扩展库,扩展库就是操作数据库的一个集合
mysql数据库是用于存放数据的
可以查看php可以使用的扩展库 phpinfo();
创建新表
?
code class=hljs sqlCREATE table user(
id int primary key auto_increment,
name varchar(32) not NULL,
PASSWORD VARCHAR(64) not NULL,
emial VARCHAR(128) not NULL,
age TINYINT UNSIGNED not NULL
) /code
预先加载数据
mysql中密码的处理,对一个明文加密成一个密文,而且这个过程是不可逆的。由密文推不出明文。
INSERT INTO user(name,password,emial,age) values(‘zs’,MD5(‘123456’),’1051743154@’,12)其中md5这个函数就是实现对密
码的加密
解决数据库不能插入中文
INSERT INTO user(name,password,emial,age) values(‘赵文娟’,MD5(‘123432326’),’1051743154@’,12)
中文在数据库就不能正常的显示
新建数据库的时候一定要选择正确的编码格式
php利用扩展库操作mysql
1、获取连接
connection=mysqlconnect(“”,”root”,”“);if(!connection){
die(“连接失败”.mysql_error);
}
2、选择数据库
mysql_select_db(“senjintang”);
3、设置操作编码
mysql_query(“set names utf8”); 出现中文乱码的时候可以尝试使用
4、向数据库发送指令sql(ddl数据定义语言 创建表 dml数据操作语言 dql数据查询语句select dtl数据事物语句 rollback commit)
res=mysqlquery(sql,connection);5、接受返回的结果并处理while(row=mysql_fetch_row(res))echo“$row[0]??$row[1]–$row[2]??$row[3]
–$row[4]”;mysqlfetchrow(res) 返回一个索引数组
mysql_fetch_assoc(res)返回一个关联数组mysqlfetcharray(res) 返回索引数组和关联数组两套
mysql_fetch_object(res)把一行数据当作一个对象mysqlfetchrow(res)返回的是结果集的下一行,会一次取出结果集中的下一行
但是这资格函数使用完以后,都必须释放资源
6、释放资源,关闭连接
mysql_free_result($res); //释放结果集
mysql_close(); //关闭连接 不是必须的,会在脚本执行完以后自动关闭
mysqli_error() 可以打印连接的错误
注意:在对数据库执行dml(非select的数据库查询以后),一定不要再进行释放资源,也就是 mysql_free_result(res);因为当前的res是一个
布尔值。所以:对数据的操作严格的区分有无结果集的的返回。
对mysql数据库进行crud操作 使用的是mysql_
实现对数据库的插入操作
code class=hljs php //server的名称 数据库的用户名和密码
$connection=mysql_connect(,root,);
if(!$connection){
die(连接失败.mysql_error);
}
mysql_select_db(senjintang);
mysql_query(set names utf8);
$sql=insert into user(name,password,emial,age) values (小敏,md5(123),xiaoming,34);
//如果是dml操作,调用这个函数以后返回的是一个布尔值
$res=mysql_query($sql,$connection);
$affected_number=mysql_affected_rows($connection);
if(!$res){
die
显示全部