MySQL和SQL Server基本语句总结(三)
这一节主要总结一下在PHP中使用Mysql进行数据库的编程。
使用MYSQL:
常用函数
1.mysql_connect(服务器名称,用户名,密码) // 判断连接 错误则使用 mysql_error 函数
2.mysql_select_db() //选择数据库
3.mysql_query() //执行语句 返回结果集 或者返回BOOL值
4.对结果集的处理
mysql_fetch_array// 取得结果集中的一行的数据 可以是数字 也可以是字段
mysql_fetch_assoc //数组 字段
mysql_fetch_object //获取一行的对象 //用的较少 //但是是个趋势 转向面向对象
mysql_fetch_row //获取一行 数组保存 用的较多
mysql_affected_rows // 影响的行数 用于判断
mysql_free_result //释放结果集
mysql_num_fields //取得字段的数目
mysql_num_rows //取得行的数目
mysql_close //关闭连接
使用Mysqli:
和上面差不多 不过所有的都被封装到一个类中
1.实例化一个对象 new MySQLi(和上面一样,“数据库名称”); ->connect_error 返回错误
2.->select_db选择数据库 ///
3.->query //执行语句 这里还有批量执行多条语句 下面再说
4.对结果集的处理
->fetch_row ->fetch_array ->fetch_assoc ->fetch_object
->num_rows ->field_count ->free ->close //这些都和上面的函数一样 只不过被封装到类里面了
上面是一些常用的基础性的用法
下面来总结执行多条SQL 语句
先看代码
//执行插入操作
$mysqli=new MySQLi("localhost","root","87129291","xiaoyuan"); if ($mysqli->connect_error) die($mysqli->connect_error); $mysqli->query("set names gbk"); $sqls="insert into prifession values(5,'信息');"; //这里注意最后写上分号 $sqls.="insert into prifession values(6,'机械')"; if (!$mysqli->multi_query($sqls)) die("插入失败");
//执行获取结果集操作
$mysqli=new MySQLi("localhost","root","87129291","xiaoyuan");
if ($mysqli->connect_error) die($mysqli->connect_error); $mysqli->query("set names gbk"); $sqls="select *from prifession;"; $sqls.="select *from yuanxi;";
if ($res=$mysqli->multi_query($sqls)) //执行多条语句 返回是BOOL值 { do { $rus=$mysqli->store_result(); // 获取到一个结果集 while($row=$rus->fetch_row()) { var_dump($row); echo "<br/>"; } echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br/>"; $rus->free(); //释放结果集 if (!$mysqli->more_results()) //判断是否还有 break; }while($mysqli->next_result()); //获取到下一个结果集 }
下面总结事务处理
代码
$mysqli->autocommit(false); //关闭自动提交
$sql1="update prifession set id=id+2 where id=5"; $sql2="update prifession1 set id=id+2 where id=6"; $d1=$mysqli->query($sql1); $d2=$mysqli->query($sql2); if (!$d1||!$d2) // 判断 是否错误 $mysqli->rollback(); //执行回滚操作 else $mysqli->commit(); //执行提交操作
下面总结预编译
预编译其实就是给数据库(服务器)提供一个模板 接下来的操作就不需要再进行编译 直接获取数据 这样可以很快的获取到或者添加等数据库里面大量的数据 (新手,用的不多)
代码
1.
$sql="insert into prifession values(?,?)"; //这里问号是下面要增加的数据 $mysqli_stmt=$mysqli->prepare($sql); //准备操作 $id=80; $name="the yesterday";
//绑定 i 整型 d double类型 s 字符串类型 $mysqli_stmt->bind_param("is",$id,$name); $b=$mysqli_stmt->execute() or die("$mysqli_stmt->error"); //执行上面的语句 $id=9; $name="ppp"; $mysqli_stmt->bind_param("is",$id,$name); $b=$mysqli_stmt->execute() or die("$mysqli_stmt->error"); $id=10; $name="qqq"; $mysqli_stmt->bind_param("is",$id,$name); $b=$mysqli_stmt->execute() or die("$mysqli_stmt->error"); $mysqli_stmt->close(); //关闭预编译指令 注意 这里一定要关闭预编译 否则后面的处理还是这套模板 会产生错误
2.
$sql="select name from prifession where id>?"; $mysqli_stmt=$mysqli->prepare($sql); $id=10; $mysqli_stmt->bind_param("i",$id); $mysqli_stmt->bind_result($name); //增加了绑定结果集 $mysqli_stmt->execute(); while($mysqli_stmt->fetch()) // 获取结果到上面的变量中 echo "$name<br/>"; $id=1; $mysqli_stmt->bind_param("i",$id); $mysqli_stmt->execute(); while($mysqli_stmt->fetch()) echo "$name<br/>"; $mysqli_stmt->free_result(); //释放结果集 $mysqli_stmt->close(); //关闭预编译指令
上面是PHP中数据库的常用操作,下面我会总结C++中的使用方法。