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);

 
返回true

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();
}
?>

 

posted on 2020-04-03 18:17  kevin_yang123  阅读(3864)  评论(0编辑  收藏  举报