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
- 关闭资源
- 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()释放结果集
- 关闭资源
- 函数
- mysqli和mysqli_result支持函数,mysqli_stmt基本都支持
- 事务处理
- 建立表
- 表类型为MyISAM不支持事务功能,需要建立InnoDB类型的表
- 关闭自动提交
- autocommit():参数为0或false时,关闭自动提交
- 提交事务
- commit():提交事务(多条执行后的sql语句)
- 回滚事务
- rollback():回滚事务(多条已执行的sql语句)
- 其他方法
- set_charset($string):设置取出字符集
|