zoukankan      html  css  js  c++  java
  • PHP操作MySQL

    一、PHP连接MySQL服务器

      什么是PHP的MySQL函数库?

        即一套PHP的函数库扩展包,在PHP文件下的“ext/php_mysql.dll”

      配置PHP作为MySQL服务器的客户端:

        PHP配置文件php.ini中开启“extension=php_mysql.dll”

    二、PHP操作MySQL的函数库步骤

      ①连接数据库服务器

        mysql_connect  打开一个连接(推荐)

        mysql_pconnect  打开一个持久连接(不推荐)

        mysql_connect("$host","$username","$password");

        连接成功返回MySQL连接标识符,连接失败返回false

        例:

          $link=mysql_connect("localhost","root","1234");

      ②判断是否连接成功

        if(!$link){

          exit("数据库服务器连接失败,错误信息:".mysql_error()."错误号:".mysql_errno());

        }

        mysql_error():返回上一步操作的错误信息

        mysql_errno():返回上一步操作的错误号

      ③设置客户端字符集

        mysql_set_charset("utf8");

        mysql_query("set names utf8");

      ④选择数据库

        $db=mysql_select_db("$db_name" [,$link]);

        打开所连接的数据库服务器中的指定数据库,若不指定第二个连接参数,则默认打开最近的连接,成功返回true,失败返回false

      ⑤准备SQL语句

        $sql="SQL语句";

        注:引号中的SQL语句无需以分号结束

      ⑥发送SQL语句

        $res=mysql_query($sql [,$link]);

        对于DQL查询语句(select/explain/show/desc/describe)执行成功返回结果集资源,执行失败返回false;对于其他类型的sql语句,执行成功返回true,执行失败返回false 

      ⑦处理结果

        if(!$res){

          echo "执行失败,错误信息:".mysql_error();

        }else{

          echo "执行成功";

        }

        mysql_insert_id([$link]):获取主键ID,即auto_increment的值

        mysql_affected_rows([$link]):获取受影响数据条数(适用于增、删、改)

        mysql_num_rows($res):获取DQL查询语句返回的结果集资源包含的数据条数

        mysql_fetch_array($res [,MYSQL_BOTH]):将结果集资源解析成索引和关联的混合数组

          MYSQL_BOTH:可选参数,默认值,MYSQL_BOTH将得到一个同时包含索引和关联的混合数组;MYSQL_ASSOC将只得到一个关联数组,字段名作为键名字段值作为键值,作用同mysql_fetch_assoc();MYSQL_NUM将只得到一个索引数组,作用同mysql_fetch_row();

        mysql_fetch_row($res):将结果集资源解析成索引数组

        mysql_fetch_assoc($res):将结果集资源解析成关联数组,字段名作为键名字段值作为键值

        mysql_fetch_object($res):将结果集资源解析成对象

      ⑧关闭数据库连接

        mysql_free_result($res);  释放DQL查询语句的关联结果集资源

        mysql_close();

    例1:

    $link=mysql_connect("localhost","root","");
    if(!$link){
        exit("连接MySQL服务器失败,错误信息为:".mysql_error()."错误号为:".mysql_errno());
    }
    mysql_set_charset("utf8");
    $db=mysql_select_db("test01");
    if(!$db){
        exit("连接数据库失败,错误信息为:".mysql_error()."错误号为:".mysql_errno());
    }
    $sql="insert users(username,password,sex) values('autumn','1111',null)";
    $res=mysql_query($sql);
    if($res && mysql_affected_rows()>0){
        echo "成功添加了".mysql_affected_rows()."条数据";
    }else{
        echo "添加数据失败,错误信息为:".mysql_error()."错误号为:".mysql_errno();
    }
    mysql_close();

    例2:

    $link=mysql_connect("localhost","root","") or die("连接数据库服务器失败,错误信息为:".mysql_error()."错误号为:".mysql_errno());
    mysql_set_charset("utf8");
    $db=mysql_select_db("test01",$link) or die("连接数据库失败,错误信息为:".mysql_error()."错误号为:".mysql_errno());
    $sql="select * from users";
    $res=mysql_query($sql,$link);
    if(!$res){
        echo "查询数据失败,错误信息为:".mysql_error()."错误号为:".mysql_errno();
    }elseif(mysql_num_rows($res)==0){
        echo "当前数据表中无数据";
    }else{
        echo "<table border='1' width='800'>";
        echo "<tr>";
        echo "<td>id</td>";
        echo "<td>username</td>";
        echo "<td>password</td>";
        echo "<td>sex</td>";
        echo "</tr>";
        while($data=mysql_fetch_assoc($res)){
            echo "<tr>";
            echo "<td>".$data['id']."</td>";
            echo "<td>".$data['username']."</td>";
            echo "<td>".$data['password']."</td>";
            echo "<td>".$data['sex']."</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    echo "<br>";
    echo "共查询到".mysql_num_rows($res)."条数据";
    
    mysql_free_result($res);
    mysql_close();
  • 相关阅读:
    Lua调用C++时打印堆栈信息
    Node.js批量去除BOM文件
    cocos2d-x中CCLabelAtlas的小图片拼接
    node.js使用mysql模块的坑
    关于chrome插件编写的小结
    【吐槽】如风达快递
    bat调用TexturePacker更新SpriteSheet
    使用node-webkit实现打包工具的小结
    使用devenv.exe自动编译项目
    svn导出文件进行比较
  • 原文地址:https://www.cnblogs.com/zhouwanqiu/p/9084726.html
Copyright © 2011-2022 走看看