日期:2014-05-16  浏览次数:20365 次

PHP从零单排(十三)使用PHP显示MySQL数据库的数据

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>';
	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>';
	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,因此其返回的结果集数组是以字段名为索引的关联数组。