zoukankan      html  css  js  c++  java
  • mysql扩展库操作mysql数据库

    • 环境搭建

    启用mysql扩展库,在php.ini文件中去配置mysql扩展库

    extension=php_mysql.dll

    • 查询数据库

    1、建库建表

    //建库test
    create database test;
    //用库test
    use test;
    //建表user1
    create table user1(
    id int primary key auto_increment,
    name varchar(32) not null,
    password varchar(64) not null,
    age tinyint unsigned not null,
    birthday date not null
    );
    //增加数据
    insert into user1 (name,password,age,birthday) values ('lm',md5('lm'),25,'1991-01-02');
    insert into user1 (name,password,age,birthday) values ('lxz',md5('lxz'),25,'1991-02-03');
    insert into user1 (name,password,age,birthday) values ('wy',md5('wy'),25,'1991-03-04');

    2、查询数据库

     1 <?php
     2     //连接数据库
     3     $conn=mysql_connect('localhost','root','root');
     4     //如果连接失败,报错
     5     if(!$conn){
     6         die("连接数据库失败".mysql_error());
     7     }
     8     //选择数据库
     9     mysql_select_db('test');
    10     //设置操作编码
    11     mysql_query('set names utf8',$conn);
    12     //sql语句,实现查询操作
    13     $sql="select * from user1";
    14     //执行sql语句
    15     $res=mysql_query($sql,$conn);
    16     //对结果处理
    17     while($row=mysql_fetch_row($res)){
    18         echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."<br/>";
    19         //var_dump($row);
    20     }
    21     //释放资源,关闭数据库
    22     mysql_free_result($res);
    23     mysql_close($conn);
    24 ?>

    结果如下:

    问题:查询不到第一行?

    3、下面介绍四个结果处理函数的区别

    mysql_fetch_row($res)  返回索引数组,如下:

    mysql_fetch_assoc($res)  返回关联数组,如下:

    mysql_fetch_array($res)  返回索引数组+关联数组,如下:

    mysql_fetch_object($res)  返回对象,如下:

    •  增删改数据库
     1 <?php
     2 //对数据库增删改操作,dml语句(insert,delete,upgate)
     3     //连接数据库
     4     $conn=mysql_connect('localhost','root','root');
     5     //如果连接失败,报错
     6     if(!$conn){
     7         die("连接数据库失败".mysql_error());
     8     }
     9     //选择数据库
    10     mysql_select_db('test');
    11     //设置字符格式
    12     mysql_query('set names utf8',$conn);
    13     //sql语句,实现增删改操作
    14     $sql="insert into user1 (name,password,age,birthday) values('skl',md5('skl'),25,'1991-04-05')";
    15     //$sql="delete from user1 where name='skl'";
    16     //$sql="update user1 set age=18 where name='skl'";
    17     //执行sql语句
    18     $res=mysql_query($sql,$conn);
    19     //dml语句执行后返回结果为布尔型
    20     if(!$res){
    21         echo "操作失败".mysql_error();
    22     }
    23     if(mysql_affected_rows($conn)>0){
    24         echo "操作成功";
    25     }else{
    26         echo "没有影响到行数";
    27     }
    28     //关闭数据库
    29     mysql_close($conn);
    30 ?>
    •  把对数据库的操作封装成类

    mysqlTool.class.php

     1 <?php
     2     class MysqlTool{
     3         private $host="localhost";
     4         private $userName="root";
     5         private $pwd="root";
     6         private $dbName="test";
     7         private $conn;
     8         //连接数据库函数,构造函数(与类同名),实例化后自动调用
     9         public function MysqlTool(){
    10             $this->conn=mysql_connect($this->host,$this->userName,$this->pwd);
    11             if(!$this->conn){
    12                 die("连接数据库失败".mysql_error());
    13             }
    14             mysql_select_db($this->dbName,$this->conn);
    15             mysql_query("set names utf8",$this->conn);
    16         }
    17         //dql语句,完成select
    18         public function executeDql($sql){
    19             $res=mysql_query($sql,$this->conn) or die("操作失败".mysql_error());
    20             return $res;
    21         }
    22         //dml语句,完成insert,delete,update
    23         public function executeDml($sql){
    24             $res=mysql_query($sql,$this->conn);
    25             if(!$res){
    26                 return 0;//0表示操作失败
    27             }else{
    28                 if(mysql_affected_rows($this->conn)>0){
    29                     return 1;//1表示操作成功
    30                 }else{
    31                     return 2;//2表示没有行数影响
    32                 }
    33             }
    34         }
    35         //关闭数据库
    36         public function mysqlClo(){
    37             mysql_close($this->conn);
    38         }
    39     }
    40 ?>

    实例化类完成查询数据库操作:

     1 <?php
     2     //引入类文件
     3     require_once "mysqlTool.class.php";
     4     //对类实例化
     5     $mysqlTool=new MysqlTool();
     6     //查询数据库
     7     $sql="select * from user1";
     8     $res=$mysqlTool->executeDql($sql);
     9     while($row=mysql_fetch_row($res)){
    10         echo $row[0]."--".$row[1]."--".$row[2]."--".$row[3]."<br/>";
    11     }
    12     mysql_free_result($res);
    13     $mysqlTool->mysqlClo();
    14 ?>

    实例化类完成增删改数据库操作:

     1 <?php
     2     //引入类文件
     3     require_once "mysqlTool.class.php";
     4     //对类实例化
     5     $mysqlTool=new MysqlTool();
     6     //增删改数据库
     7     //$sql="insert into user1 (name,password,age,birthday) values ('skl',md5('skl'),25,'1991-04-05')";
     8     //$sql="delete from user1 where name='skl'";
     9     $sql="update user1 set age=18 where name='skl'";
    10     $res=$mysqlTool->executeDml($sql);
    11     if($res==0){
    12         echo "操作失败";
    13     }else if($res==1){
    14         echo "操作成功";
    15     }else if($res==2){
    16         echo "没有行数影响";
    17     }
    18     $mysqlTool->mysqlClo();
    19 ?>
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    关于if和else和switch case的用法和程序编码操作过程
    关于java的特点
    关于JAVA的数据类型
    关于java的学习
    力扣482. 密钥字符串 S python--每天一题
  • 原文地址:https://www.cnblogs.com/seaBiscuit0922/p/5908579.html
Copyright © 2011-2022 走看看