MySQL相关知识整理三

PHP连接MYSQL流程:

    1.连接MYSQL服务器

    2.选择数据库

    3.设置交互字集

    4.拼写SQL语句并执行

    5.关闭MYSQL连接

PHP连接MYSQL的三种方式:mysql、mysqli、pdo

一、MYSQL:

1.连接MYSQL

 $mysql_resource =mysql_connect($host,$user,$password);//返回值就是MYSQL服务器连接资源($mysql_resource)

 mysql_pconnect()

2.选择数据库

    mysql_select_db($database_name)//返回值是bool

3.设置交互字集

    mysql_query("set namesutf8");//gbk

4.执行SQL语句

                拼写SQL语句:insert update delete select

     $sql = "insert banji(name,nid)values('初三一班',2)";

     mysql_query($sql[,$mysql_resource])//返回值根据SQL语句类型来决定

      select查询语句:返回值就是资源(mysql结果集资源,$result_resource),失败返回false

        mysql_fetch_assoc($result_resource)

        mysql_fetch_array($result_resource)

        mysql_fetch_row($result_resource)

        mysql_fetch_object($result_resource)

        mysql_num_rows($result_resource)

        mysql_free_result($result_resource)

 

      insert语句:返回值是bool

        mysql_insert_id($mysql_resource)//获取最新的主键ID值

      update、delete语句:返回值也是bool

        mysql_affected_rows($mysql_resourc)//获取受影响的记录条数

5.关闭MYSQL连接

    mysql_close($mysql_resource)

 

二:mysqli:函数形式 (improved)

1.连接MYSQL:

    $mysql_resource = mysqli_connect($host,$user,$password,$database_name,$port,$socket)

2.选择数据库(并行到了第一步)

3.设置交互字符集

   mysqli_set_charset($mysql_resource,'utf8/gbk');

4.执行SQL语句

           拼写SQL语句

    mysqli_query($mysql_resource,$sql)//返回值根据SQL语句类型来决定

      select查询语句:返回值就是资源(mysql结果集资源,$result_resource),失败返回false

        mysqli_fetch_assoc($result_resource)

        mysqli_fetch_array($result_resource)

        mysqli_fetch_row($result_resource)

        mysqli_fetch_object($result_resource)

        mysqli_num_rows($result_resource)

        mysqli_free_result($result_resource)

 

      insert语句:返回值是bool

        mysqli_insert_id($mysql_resource)//获取最新的主键ID值

      update、delete语句:返回值也是bool

        mysqli_affected_rows($mysql_resourc)//获取受影响的记录条数

 

    mysqli_execute($stmt)

        $stmt = mysqli_stmt_init($mysql_resource);

        mysqli_stmt_prepare($stmt,$query);

        //$stmt =mysqli_prepare($mysql_resource,$query);

       mysqli_stmt_bind_param($stmt,$type)//$type:i(整型),s(字符),d(双精度),b

        mysqli_execute($stmt)

       

    mysqli_multi_query($sql)//执行多条sql语句

5.关闭mysql连接

    mysqli_close($mysql_resource)

 

mysqli:mysqli面向对象

1.连接MYSQL:

    $link = newmysqli($host,$user,$password,$database_name,$port,$socket);

2.选择数据库(并行到了第一步)

3.设置交互字符集

   $link->set_charset('utf8');

4.执行sql语句

    $result = $link->query($sql);

    select语句:返回值是资源对象(mysql结构集资源对象),失败返回false

        $result->fetch_assoc()

        $result->fetch_array()

        $result->fetch_row()

        $result->fetch_object()

        $result->free_result()

        $re->num_rows

 

    update、delete语句:返回值是bool

        $link->affected_rows

    insert语句:返回值是bool

        $link->insert_id

       

        $stmt->execute();

           $stmt = $link->prepare($sql);

           $stmt->bind_param($type);//

           $stme->execute();

    $link->multi_query($sql);//执行多条SQL语句

5.关闭mysql连接

    $link->close();

   

 

三、PDO

在配置文件中开启:

    extension=php_pdo_mysql.dll

1.实例化PDO对象(连接[构造方法])

    $pdo = new PDO("type:host=域名;dbname=数据库名;charset=utf8",$user,$password);

    type:指定数据库类型,mysql,sqlite等

2.执行SQL语句

    a.执行查询语句

        $PDOs = $pdo->query($sql);//返回值是PDOStatement对象

        PDOStatement对象中的方法:

            $PDOs->setFetchMode($num)//指定fetch,fetchAll返回值的类型

                2=>PDO::FETCH_ASSOC

                3=>PDO::FETCH_NUM

                4=>PDO::FETCH_BOTH

            $PDOs->fetch();//获取一条记录,并且内部指针下移

            $PDOs->fetchAll();//获取所有记录

            $PDOs->rowCount();//获取所有记录条数

 

    b.执行update,delete,insert语句:

        $pdo->exec($sql);//返回值是受影响的记录条数,int类型

        $pdo->lastInsertId()//获取主键ID值

        

   c.$PDOs = $pdo->prepare($sql);//预处理,准备要执行的SQL

        $PDOs->bindParam(":名称",变量调用值,type);//type类型:PDO::PARAM_INT=>1 PDO::PARAM_STR=>2

        $PDOs->execute();

 

        PDO提供了sql语句预处理功能(防止sql注入)

            通过占位符来实现:

            占位符:在sql语句中写一个字符,代表这里占一个位置,通过bindParam()给占位符赋值

            语法格式:   :名称

            (mysqli中占位符是(?),PDO中是(:名称))

           

            sql语句中哪些地方可以用占位符?

            select: where 字段名=占位符

                    having 字段名=占位符

                    limit 占位符,占位符

            update: 名值对列表  set 字段名=占位符          where 字段名=占位符

            insert:值列表  values(占位符,占位符...)

            delete: where 字段名=占位符

        预处理语句:

            1.预处理:sql语句模板创建,涉及到占位符

            2.数据库解析,绑定值

            3.执行

3.关闭MYSQL连接

    关闭(析构方法)

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值