1.在PHP执行SQL语句
要从数据库获得数据,首先PHP要执行一条对表操作的SQL语句,包括SELECT、INSERT、UPDATE或DELETE语句。一般情况下,在PHP中执行SELECT语句,会从表中查找出一些记录行。而执行其他语句,只会返回语句是否执行成功的信息。
<?php $host='localhost'; $user_name='root'; $password='helloworld'; $conn=mysql_connect($host,$user_name,$password);//连接MySQL if(!$conn) { die('FAIL!'.mysql_error()); } mysql_select_db('test');//选择数据库 $sql='select UserId,UserName,Gender from users'; $result=mysql_query($sql);//获取查询结果 if($result) { echo 'SQLsyntex:'.$sql.'<br/>Success'; $num=mysql_num_rows($result);//获取查询结果的行数 echo '<br/> select <b>'.$num.' </b>rows'; } mysql_close($conn); ?>通常,mysql_query()也会和mysql_error()一同使用,以便当SQL语句执行出现问题时,可以根据mysql_error()产生的信息查找问题原因。
<?php $host='localhost'; $user_name='root'; $password='helloworld'; $conn=mysql_connect($host,$user_name,$password); if(!$conn) { die('FAIL!'.mysql_error()); } mysql_select_db('test'); $sql='select UserId,UserName,Gender,cc from users'; $result=mysql_query($sql) OR die("<br/>ERROR:<b>".mysql_error()."</b><br/><br/><br/>Problem:<br/>.$sql"); if($result) { echo 'SQLsyntex:'.$sql.'<br/>Success'; $num=mysql_num_rows($result); echo '<br/> select <b>'.$num.' </b>rows'; } mysql_close($conn); ?>2.用PHP处理数据结果集
当一个SQL语句在程序中成功执行之后,可以使用mysql_fetch_array()来获取具体的查询结果,即使用该函数获取记录的字段值。
<?php $host='localhost'; $user_name='root'; $password='helloworld'; $conn=mysql_connect($host,$user_name,$password); if(!$conn) { die('FAIL!'.mysql_error()); } mysql_select_db('test'); $sql='select id,name,sex,age from users'; $result=mysql_query($sql) OR die("<br/>ERROR:<b>".mysql_error()."</b><br/><br/><br/>Problem:<br/>.$sql"); if($num=mysql_num_rows($result)) { $row=mysql_fetch_array($result); echo '<pre class="brush:java;">'; print_r($row); } mysql_close($conn); ?>函数mysql_fetch_array(),讲述到该函数返回的是结果集中的一行,并将其作为关联数组或普通数组,默认该返回数组是二者兼有的。mysql_fetch_array()返回的数组为每个字段值建立了两个索引:一个是以数字为索引,另一个以字段名为索引。
<?php $host='localhost'; $user_name='root'; $password='helloworld'; $conn=mysql_connect($host,$user_name,$password); if(!$conn) { die('FAIL!'.mysql_error()); } mysql_select_db('test'); $sql='select id,name,sex,age from users'; $result=mysql_query($sql) OR die("<br/>ERROR:<b>".mysql_error()."</b><br/><br/><br/>Problem:<br/>.$sql"); if($num=mysql_num_rows($result)) { $row=mysql_fetch_array($result); echo '<pre class="brush:java;">'; while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {print_r($row); } } mysql_close($conn); ?>使用while循环多次调用函数mysql_fetch_array(),每次将调用返回的数组赋给变量$row,然后在循环体内将数组变量$row输出。调用函数mysql_fetch_array()时,指定第二个参数为MYSQL_ASSOC,因此其返回的结果集数组是以字段名为索引的关联数组。