这一节主要总结一下在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++中的使用方法。