php数据库使用

  • 1、php数据库编程

三种方式操作mysql数据库:

1、mysql扩展库
2、mysqli 扩展库
3、pdo

  • 2、mysql扩展库和mysql数据库的区别。
    2.1 扩展库是php里面的一些函数,方便程序员操作mysql数据库。mysql是用于存放数据的,主要的是数据表。(还有其他的数据对象)
    2.2 数据库的三层结构:php程序==》dnms==>数据库
    
    Paste_Image.png
  • 3、 使用php的mysql扩展库对mysql操作的案例。

3.1 启用mysql扩展库
在php.ini文件中配置,extension=hph_mysql.dll

<?php
// 1、获取链接
$conn = mysql_connect("127.0.0.1","root","root");
if (!$conn) {
    die("链接失败".mysql_error());
}
// 2、选择数据库
mysql_select_db("test");
// 3、设置操作编码(可以有)
mysql_query("set names utf8");
// 4、发送指令
$sql = "select *from user";
$res = mysql_query($sql,$conn);
var_dump($res);
// 5、接受返回的结果、并处理
while ($row=mysql_fetch_row($res)) {
    # code...
    foreach ($row as $key => $value) {
        echo "---$value";
    }
}
// 6、释放资源,关闭链接
mysql_free_result($res);
mysql_close($conn);// 可以有
?>
<!-- 1.使用完$res要自动释放资源
 2.取到资源后,关闭链接没有影响。
 3.mysql_fetch_row函数,先自增,在去数据(也就是去下一行的数    据)
-->
<!--
四种取资源的函数:
1、mysql_fetch_row 返回索引数组 整行数据取出
2、mysql_fetch_assoc 返回关联数组(字段作为key)
3、mysql_fetch_array 返回索引数组和关联数组(两个)
4、mysql_fetch_object 返回对象
-->
  • 4.mysqli的使用(面向对象)
<?php
// 1.创建mysqli对象
$mysqli = new MySQLi("localhost","root","root","test");
//验证是否连接
if($mysqli->connect_error){
    die("链接失败".$mysqli->connect_error);
}
// 2.操作数据库
$sql = "select *from user1";
//返回结果
$res = $mysqli->query($sql);
//3.处理结果
while($row=$res->fetch_row()){
      foreach($row as $key=>$val){
          ech "$val--";
}
// 4.关闭资源
$res->free(); // 释放内存
$mysqli->close();//关闭链接
?>
  • 5.mysqli的使用(面向过程)省略

注意事项:如果操作的字段类型是String类型,则要求我们要用单引号括起来,如果操作字段是值类型,则不要求用单引号。

  • 6.再封装一层
<?php
class SqlHelper{
    private $mysqli;
    private static $host="";
    private static $user="";
    private static $pwd="";
    private static $db="";

    public function __construct(){
        &this->mysqli=new MySQLi(self::$host,self::$user,self::$pwd,self::$db);
        if($this->mysqli->connect_error){
            die("错误".$this->mysqli->connect_error);
            $this->mysqli->query("set names utf8");
        }
    }

    public function execute_dql($sql) {
        $res=$this->mysqli->query($sql) or die("操作dql").$this->mysql->error);
        return $res;
    }
    public function execute_dml($sql) {
        $res=$this->mysqli->query($sql) or die("操作dql").$this->mysql->error);

        if (!$res) {
            return 0;//表示失败
        } else {
            if($this->mysqli->affected_rows>0){
                        return 1;//表示成功
                    }else {
                    return 2;// 表示没有行受到影响   
                    }
        }
    }

}
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容