数据库操作语句主要分为dml语句和dql语句:
数据操作语句(dml)语句:具体是指 UPDATE更新、INSERT插入、DELETE删除。
数据查询语句(dql)语句:指 SELECT 数据查询语言
如果执行的是dml语句,则返回bool值
如果执行的是dql语句,则返回查询结果$res,从$res中取出查询结果主要有一下四种方式:
mysql_fetch_row($res) ,返回一个索引的数组 (推荐.)
mysql_fetch_assoc($res) ,返回一个关联数组
mysql_fetch_array($res) ,返回索引数组和关联数组 (两套)
mysql_fetch_object($res) ,把一行数据,当做一个对象返回.
<?php //演示对test表进行增,删,改,查的操作 $conn=mysql_connect("localhost","root","111111"); if(!$conn){ die("连接数据库失败!".mysql_error()); } mysql_select_db("test",$conn) or die("数据库选择失败!".mysql_error()); mysql_query("set names utf8"); //$sql="insert into test(id,name,age,class,home,school) values(1,'qw',12,12,12,12)"; //$sql="delete from test where id=1"; $sql="update test set age=100 where id=2"; $sql_dql="select * from test"; //如果是dml操作,则返回bool $res=mysql_query($sql,$conn); if(!$res){ die("操作失败".mysql_error()); } //看看有几条数据受到影响, if(mysql_affected_rows($conn)>0){ echo "受影响的行数为:".mysql_affected_rows($conn)."行"; }else{ echo "没有影响到行数"; } //如果执行的是dql语句,则返回查询结果$res,从$res中取出查询结果 $result = mysql_query($sql_dql,$conn); if(!$result){ echo '数据库查询失败!'.mysql_error(); exit; } echo "<br/>"; //返回索引数组 // while($row = mysql_fetch_row($result)){ // echo $row[0]."--"; // echo $row[1]."--"; // echo $row[2]."--"; // echo $row[3]."--"; // echo $row[4]."--"; // echo $row[5]."--"; // echo "<br>"; // } // echo "共输出".mysql_affected_rows($conn)."条记录!"; //返回关联数组 // while($row = mysql_fetch_assoc($result)){ // echo $row['id']."--"; // echo $row['name']."--"; // echo $row['age']."--"; // echo $row['home']."--"; // echo $row['class']."--"; // echo $row['school']."--"; // echo "<br>"; // } // echo "共输出".mysql_affected_rows($conn)."条记录!"; //返回索引数组和关联数组 (两套) // while($row = mysql_fetch_array($result)){ // echo $row['id']."--"; // echo $row[0]."--"; // echo $row['name']."--"; // echo $row[1]."--"; // echo $row['age']."--"; // echo $row[2]."--"; // echo $row['home']."--"; // echo $row['class']."--"; // echo $row['school']."--"; // echo "<br>"; // } // echo "共输出".mysql_affected_rows($conn)."条记录!"; //把一行数据,当做一个对象返回. while($row = mysql_fetch_object($result)){ echo $row->id."--"; echo $row->name."--"; echo $row->age."--"; echo $row->home."--"; echo $row->class."--"; echo $row->school."--"; echo "<br>"; } echo "共输出".mysql_affected_rows($conn)."条记录!"; //释放资源,使用完$result结果集后,一定要尽快释放资源,有助于减轻内存压力: mysql_free_result($result); //关闭连接,$conn 的使用原则是尽量晚创建,尽量早释放 mysql_close($conn); ?>
<?php $result = mysql_query("SELECT id,email FROM people WHERE id = '42'"); if (!$result) { echo 'Could not run query: ' . mysql_error(); exit; } /* Use the result, assuming we're done with it afterwards */ $row = mysql_fetch_assoc($result); /* Now we free up the result and continue on with our script */ mysql_free_result($result); echo $row['id']; echo $row['email']; ?>
mysql_free_result() 仅需要在考虑到返回很大的结果集时会占用多少内存时调用。在脚本结束后所有关联的内存都会被自动释放。
$row = mysql_fetch_assoc($result);
mysql_free_result($result); 用在$row 之后即可