当前位置:首页 > 网站技术 > 后端技术 > 正文内容

PHP入门基础之PHP操作MySQL数据库

binadmin2020-07-12后端技术73

1、PHP操作MySQL数据库的三种方式

2.png

1.PHP mysql扩展

PHP2.0版本开始引入,仅提供面向过程的接口

通过调用函数实现

例子:

<?php 
    //建立连接
    $connection = mysql connect( 'localhost', 'user' , 'password');
    //执行SQL语句
    $result = mysqL gquery( 'SHO TABLES', $connection);
    //关闭连接
    mysql _close($result)
?>

支持MySQL数据库的基础功能

对MySQL5.1+数据库服务器的新特性支持性差 

本扩展自 PHP 5.5.0 起已废弃,并在自 PHP 7.0.0 开始被移除。


2.PHP PDO驱动

PHP5.1版本开始引入,仅提供面向对象的接口

通过调用对象方法实现

<?php
    //建立连接
    $connection = new PDO( mysql:host=localhost;dbname=testdb' , 'user', 'password');
    //执行SQL语句
    $result = $connection->query( ' SHOW TABLES' ); 
?>

无需显示关闭连接,PDO对象回收时会自动关闭连接

支持MySQL数据库的基础功能

对MySQL5.1+数据库服务器的新特性支持性好 

官方持续维护、更新,官方推荐使用

支持多种类型的数据库

1.jpg


3.PHP mysqli扩展

 https://www.php.net/manual/zh/book.mysqli.php

PHP5.0版本开始引入,提供面向过程和面向对象两种接口

可以通过调用函数、对象方法实现


<?php
    / **
    *面向过程
    */
    //建立连接
    $connection = mysqli_ connect(' Localhost' , ' user', ' password' );
    //执行SQL语句
    $result = mysqli _query($connection, ' SHOW TABLES );
    //关闭连接
    mysqli close($connection) ;
    /**
    *面向对象
    */
    //建立连接
    $mysqli = new mysqli( ' localhost', 'user' ,' password');
    //执行SQL语句
    $result = $mysqli >query( 'SHOW TABLES');
    //关闭连接
    $mysqli- >close();
?>


完美支持MySQL 5.1+数据库服务器的基础功能和新特性

官方持续维护、更新,官方推荐使用



2、使用mysqli扩展操作MySQL数据库(一)

操作MySQL数据库八步法(八个步骤)


1建立连接 

$connection= mysqli_connect('mysql服务器地址','登陆名','登陆密码','需要查询的数据库','端口号')

2判断连接是否成功

mysqli_connect_error()

3选择数据库

mysqli_select_db($connection,'数据库名称')

4设置字符集

mysqli_set_charset($connection,'utf8')

5书写SQL语句

$sql="SELECT *FROM `table_name`"

6执行SQL语气

mysqli_query($connection,$sql);

7解析结果集 

第二个参数有三个值 MYSQL_NUM 解析成索引数组 | MYSQLI_ASSOC 解析成关联数组 | MYSQLI_BOTH 关联和索引都有

mysqli_fetch_array($array[,MYSQLI_NUM | MYSQLI_ASSOC | MYSQLI_BOTH])

mysqli_fetch_row($array) 等同于 mysqli_fetch_array($array,MYSQLI_NUM)
mysqli_fetch_assoc($array) 等同于 mysqli_fetch_array($array,MYSQLI_ASSOC)
mysqli_fetch_object($array)  以对象形式解析
mysqli_fetch_all($array[,MYSQLI_NUM | MYSQLI_ASSOC | MYSQLI_BOTH])  数组解析成索引形式(第二个参数和mysqli_fetch_array() 一样)

8关闭连接

mysqli_close()


例子:

<?php 

    // 建立连接
    $connection=  mysqli_connect('127.0.0.1','roots','');
    
    print_r($connection);
    
    // 判断连接是否成功
    if(mysqli_connect_error() !=null){
    die(mysqli_connect_error());
    }else{
    echo '连接成功!';
    }
    
    // 选择数据库
    mysqli_select_db($connection,'imooc');
    
    // 设置字符集
    mysqli_set_charset($connection,'utf8');
    
    // 书写SQL语句
    $sql="SELECT *FROM `imooc_user` LIMIT 1";
    
    // 执行SQL语句
    $result=mysqli_query($connection,$sql);
    
    // 解析结果集析
    $arr=mysqli_fetch_array($result,MYSQLI_BOTH);
    // print_r($arr)
    
    // 关闭连接
    mysqli_close($connection);
    print_r($connection);
?>


3.png



3、使用mysqli扩展操作MySQL数据库(二)


添加、更新和删除数据

1准备--连接数据库、选择数据库、设置连接字符集

$connection=  mysqli_connect('127.0.0.1','roots','');



2执行--书写并执行SQL语句

//如何添加 ,查看  后端入门php基础之MySQL基础

$sql="INSERT imooc_user(id,username,password,email,age,card,tel,salary,married,addr,sex)
VALUES(3,'sqy3','12345653','1234567836@QQ.COM','23','513019291832783281','17685405482','45500',0,'四川省',1),
(4,'sqy4','12345654','123457834@QQ.COM','23','513019291832783284','17685405222','45500',0,'四川省',1);";



//插入的数据数量
mysqli_affected_rows($connection)


//获取上一步插入数据的id
mysqli_insert_id($connection)


//更新数据
$sql ="UPDATE imooc_user SET password ='password' WHERE id>4";


//删除数据
$sql = "DELETE FROM imooc_user WHERE id>4";


3处理--获取并处理执行结果信息

if($result){
  echo '执行成功!成功删除了'.mysqli_affected_rows($connection).'条数据';
}else{
  echo '执行失败';
}

示例:

<?php 
    // 建立连接
    $connection=  mysqli_connect('127.0.0.1','roots','');
    // 判断连接是否成功
    if(mysqli_connect_error() !=null){
    die(mysqli_connect_error());
    }else{
    echo '连接成功!';
    }
    
    // 选择数据库
    mysqli_select_db($connection,'imooc');
    
    // 设置字符集
    mysqli_set_charset($connection,'utf8');
    
    // 书写SQL语句
    // $sql="INSERT imooc_user(id,username,password,email,age,card,tel,salary,married,addr,sex)
    // VALUES(3,'sqy3','12345653','1234567836@QQ.COM','23','513019291832783281','17685405482','45500',0,'四川省',1),
    // (4,'sqy4','12345654','123457834@QQ.COM','23','513019291832783284','17685405222','45500',0,'四川省',1);";
    // $sql ="UPDATE imooc_user SET password ='password' WHERE id>2";
    $sql = "DELETE FROM imooc_user WHERE id>3";
    
    // 执行SQL语句
    $result=mysqli_query($connection,$sql);
    
    // 解析结果集析
    // $arr=mysqli_fetch_array($result,MYSQLI_BOTH);
    // print_r($arr)
    
    if($result){
    echo '执行成功!成功删除了'.mysqli_affected_rows($connection).'条数据';
    }else{
    echo '执行失败';
    }
    
    // 关闭连接
    mysqli_close($connection);
?>



4、使用mysqli扩展操作MySQL数据库(三)

简单查询并结果解析

1.查询多条数据并循环显示

$sql ="SELECT good,class,price,stock FROM good WHERE id<4";
$result = mysqli_query($link.$sql);
if($result){
    echo "<pre>";
    while($row = mysqli_fetch_array($result)){
        var_dump($row);
    }
}else{
    echo "执行失败!";
}


mysqli_num_rows()查询获取到的行数

mysqli_num_fields()查询获取到的列数


复杂条件查询

SELECT *FROM table_name 查表


SELECT *FROM table_name WHERE $class1 >= $values AND $class1 <= $values

根据某种规则筛选表数据


$class1 NOT IN ($value1,$value2,$value3) 

筛选$class1等于$value1 和 $class1等于$value2 、$class1等于$value3 的数据

 

GROUP BY $class1 

根据$class1分组排序


ORDER BY $class1 

根据$class1排序


LIMIT $num 

一页$num条数据


多表联查



5、使用mysqli扩展操作MySQL数据库 

1可能错误的原因

SQL语句语法错误

数据类型错误

唯一索引列数据重复

其他错误


2程序错误排查

判断SQL语句的执行结果

查看数据影响条数

获取SQL语句执行的错误信息

修正错误并重新执行


标签: phpmysql
分享给朋友:

相关文章

PHP入门之正则表达式、PHP错误报告

PHP入门之正则表达式、PHP错误报告

原子:指正则表达式中不可再分的基本单元可见原子:普通字符:字母 数字 汉字 符号特殊字符 / \ . * ? " ' | [] {}  ()不可见原子:\t 制表符tab\...

PHP入门基础之文件操作函数封装

PHP入门基础之文件操作函数封装

1、php创建函数的注释使用vscode 编辑器,安装vs docblocker , 输入/** 回车如下    /**  * [create_fi...

PHP入门之Linux基础和shell命令行

PHP入门之Linux基础和shell命令行

centos 一般支持10年nubuntu lts 一般支持5年一、linux系统环境搭建wmware 虚拟机下载centos  DVD ISO 或者EVerythine ISO 镜像&nb...

PHPCMS里Apache服务器的伪静态和定制404页面

PHPCMS里Apache服务器的伪静态和定制404页面

1、首先网站根目录要有.htaccess文件,我做的网站服务器是Apache,所以这里就先不讲nginx服务器环境下了,听说nginx环境更简单。 2、然后直接在.htaccess文件配置网...

PHP入门之图像信息处理(验证码、水印、缩略图)

PHP入门之图像信息处理(验证码、水印、缩略图)

PHP处理图像信息要使用GD库(imageMagick是另外一种图像处理工具)1、gd_info:检测服务器支持的图像格式var_dump(gd_info()); // array(13)&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

分享:

支付宝

微信