php原生方法连接mysql数据库
三种方式
mysql扩展
mysqli扩展
pdo_mysql扩展
查询本地环境安装了那些扩展
php -m
mysql扩展连接数据库方法
<?php
//利用mysql扩展库连接数据库
//获取链接
$conn=mysql_connect("localhost","root","955219");
if(!$conn)
{
//显示错误信息
die("连接数据库失败".mysql_error());
}
else
{
echo "成功<br/>";
}
//选择数据库
mysql_select_db("practice");
//设置字符集
mysql_query("set name utf8");
//发送sql语句
$sql="select * from user";
$res=mysql_query($sql,$conn);
//接收结果并处理
var_dump($res);
// mysql_free_result($res);
mysql_close($conn);
while($row=mysql_fetch_row($res))
{
echo "<br/>";
var_dump($row);
echo "<br/>";
// echo "$row[0]------$row[1]------$row[2]";
foreach ($row as $key=>$val)
{
echo "------$val";
}
}
//释放链接,关闭资源
//释放结果集
mysql_free_result($res);
//关闭连接(这句话可以没有,没有什么用,写这句话之后链接也不是马上关闭的)
//mysql_close($conn);
?>
mysqli扩展连接数据库方法
连接数据库服务器
1)资源 mysqli_connect(服务器地址,用户名,密码)
补充:mysqli_connect默认对一个服务器只连接一次
设置连接编码
1)形式1:mysqli_query($link,''set names xxx'')
mysqli_query(connection,query,resultmode);
2) 形式2:mysqli_set_charset($link,"utf8");
3)怎么确定用哪种?
客户端当前执行脚本的界面是什么字符集,就设定成什么字符集
选定要使用的数据库
1)多用)形式1:mysqli_query($link,''xxxxx'')
2)形式2:mysqli_select_db($link,''xxxx'')
关闭连接
主动释放链接:MySQL服务器的链接资源是有限的,不用了需要释放(脚本执行结束系统也会自动释放)
1)mysqli_close($link)
执行增删改操作
mysqli_query函数返回true或者false,原因有二:1sql指令本身错误,2执行失败
做个专门负责数据库初始化的脚本:之后要操作数据库包含该脚本即可
1,2,3)mysqli_query($link,''inset /delect/update.......'');
执行查询操作
成功返回结果集:sql指令没有错误,但如果查询结果本身为空返回也是true;失败为false:sql指令有错误
获得结果集行数
1)mysqli_num_rows()
解析结果集
1)mysqli_fetch_assoc():获取关联数组,表的表单名字作为数组下标,元素值作为数组元素值
2)mysqli_fetch_row():获取索引数组,只获取数绝对值,数组下标从0开始
3)mysqli_fetch_array():获取关联或者索引数组,一个记录取两次,一组是关联数字,一组是索引数组,但是可以通过第二个参数决定获取方式;
MYSQLI_ASSOC:只获取关联数组
MYSQLI_NUM:只获取索引数组
MYSQLI_BOTH:获取全部
结果集通常操作:获取所有
pdo连接mysql
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>