请选择 进入手机版 | 继续访问电脑版
开启辅助访问
帐号登录 |立即注册

详解PHP操作数据库的类和函数

 
mysql操作数据库
  • 连接数据库
    • mysql_connect(IP,user,psw):IP为数据库地址,user为用户名,psw为用户密码,连接成功,返回数据库资源,连接失败,返回false
  • 选择库
    • mysql_select_db($dbname,[$res]):$dbname为库名称;$res为连接数据库是返回的资源,若不添加该参数,则默认为最近创建的数据库资源
  • SQL语句输入
    • mysql_query():执行SQL语句,若语句有返回结果集,则函数执行成功返回结果集,若语句没有返回结果集,函数执行成功返回true
  • 解决错误
    • mysql_errno():返回错误号
    • mysql_error():返回错误信息
  • 关闭数据库资源
    • mysql_close():关闭数据库资源,不使用参数,默认关闭开启的资源(推荐)
  • 函数
    • mysql_insert_id():返回自动增长的id,若没有设置AUTO_INCREMENT,则返回false
    • mysql_affected_rows():获取受影响的行数
  • 从结果集中取出数据
    • mysql_fetch_row($result):从结果集中取得一条数据,返回索引数组
    • mysql_fetch_assoc($result):从结果集中取得一条数据,返回关联数组
    • mysql_fetch_array($result):从结果集中取得一条数据,返回索引数组和关联数组
    • mysql_fetch_object($result):从结果集中取得一条数据,返回对象
    • mysql_data_seek($result,$row):将指针移动到指定位置
  • 从结果集中获取字段
    • mysql_num_rows($result):获取结果集的字段数
    • mysql_num_fields($result):获取结果集的列数
    • mysql_field_name($result):获取结果集的字段名



mysqli操作数据库
  • PHP5以后的新添加的功能都是面向对象的,所以mysqli是以对象的形式添加的
  • mysqli优点
    • 表示改进
    • 功能增加
    • 效率大大增加
    • 更稳定
  • mysqli扩展提供的三个类
    • mysqli:和连接有关的类
      • 构造方法
        • mysqli([$host [, $username [, $passd[, $dbname [,$port [, $socket ]]]]]] )
        • 连接成功返回对象,失败返回false
      • 查看连接失败信息
        • connect_errno():返回连接错误号码
        • connect_error():返回连接错误信息
      • SQL语句输入
        • query(sql):执行SQL语句,若语句有返回结果集,则函数执行成功返回结果集对象mysqli_result,若语句没有返回结果集,函数执行成功返回true
      • 方法
        • affected-rows():返回影响行数
        • errno():返回错误号
        • error():返回错误信息
        • insert_id():返回自动增长的id
      • 关闭资源

        • close():关闭连接

    • mysqli_result:表达对数据库的查询所返回的结果集
      • 属性:
        • $num_rows:结果集中记录数
        • $field_count:结果集中字段数
        • $current_field:获取当前列的位置
      • 方法:
        • 处理记录
          • fetch_row():与mysql_fetch_row()一致
          • fetch_assoc():与mysql_fetch_assoc()一致
          • fetch_array():与mysql_fetch_array()一致
          • fetch_object():与mysql_fetch_object()一致
          • data_seek():与mysql_data_seek()一致
          • free():释放结果集
        • 处理字段
          • fetch_field():取出列信息,并作为对象返回
          • fetch_fields():取出所有列信息,并作为对象返回
          • field_seek():移动字段指针
        • 执行多条SQL语句

          • multi_query(sql1[;sql2]):可执行多条sql语句,语句间用“;”隔开,若有多个结果集,则均会被返回
          • next_result():返回multi_query()的下一个结果集
          • more_results():检查是否含有下一个结果集


    • mysqli_stmt:预处理类
      • 优点:
        • mysqli和mysqli_result能完成的功能,mysqil_stmt都能完成
        • 效率比较高,执行多条相同的sql语句,只有数据不同的话,不用重复传语句,直接传数据即可
        • 防止sql注入,因为出入的数据只会当做值类使用,不会当做可执行语句
      • 创建对象
        • 创建好mysqli对象后,使用该对象的stmt_init()方法初始化mysqli_stmt对象
      • 准备并发送语句
        • 语句中的参数值要使用占位符“?”代替
          • 使用mysqli_stmt中的prepare($sql)方法将语句发送到服务器准备
          • 不用创建mysqli_stmt对象,直接使用mysqli中的prepare($sql)准备sql语句,并返回mysqli_stmt对象

      • 给占位符传值(绑定参数)
        • 使用bind_param($type,$var1[,$var2...])绑定参数
          • $type可以为i、d、s、b,分别代表integer、double、string和二进制资源
          • $type中的类型个数要与占位符相同,$var个数也要与占位符个数相同
        • 给变量$var赋值
      • 执行sql语句
        • 没有结果集返回
          • 使用execute()方法执行插入的参数,返回boolean类型
        • 有结果集返回
          • 使用bind_result($var1[,$var2...])绑定结果集
            • 使用fetch()执行语句,每次获取一条结果,并传递到bind_result()中的变量
            • 使用store_result()执行语句,将所有结果一次性取出,返回结果集,再用fetch()获取每一条记录
          • result_matedate()返回结果集,用于获取字段信息
          • 使用result_free()释放结果集

      • 关闭资源
        • 使用close()方法关闭
      • 函数

        • mysqli和mysqli_result支持函数,mysqli_stmt基本都支持


  • 事务处理
    • 建立表
      • 表类型为MyISAM不支持事务功能,需要建立InnoDB类型的表
    • 关闭自动提交
      • autocommit():参数为0或false时,关闭自动提交
    • 提交事务
      • commit():提交事务(多条执行后的sql语句)
    • 回滚事务
      • rollback():回滚事务(多条已执行的sql语句)

  • 其他方法
    • set_charset($string):设置取出字符集

回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。