浏览主站 | 站长工具 | 新闻资讯 | 站长学院 | 站长盈利 | HTML教程 | 网址导航 | 站长周刊 | 会员投稿 | 滚动新闻 | RSS
发新话题
打印

[Web开发] PHP语言读取数据库数据的例子(菜鸟版)

PHP语言读取数据库数据的例子(菜鸟版)

这段代码的功能是:
连接到一个 url 地址为localhost 、 端口为 3306 的mysql服务器上。
mysql服务器的帐号是"root",密码是"9999"
mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc。
表 abc 一共为两列,列名分别是 "id" 和 "name" ,将 abc 里的所有数据读出来。
<?
$dbh = @mysql_connect("localhost:3306","root","9999");

/* 定义变量dbh , mysql_connect()函数的意思是连接mysql数据库, "@"的意思是屏蔽报错 */

if(!$dbh){die("error");}
/* die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。 */
@mysql_select_db("ok", $dbh);
/* 选择mysql服务器里的一个数据库,这里选的数据库名为 ok */
$q = "SELECT * FROM abc";
/* 定义变量q, "SELECT * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */
?>
<br />
<!--=========     方法一     =========-->
<br />

<?
$rs = mysql_query($q, $dbh);
/* 定义变量 rs ,函数mysql_query()的意思是:送出 query 字串供 MySQL 做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值 */
if(!$rs){die("Valid result!");}
echo "<table>";
echo "<tr><td>ID</td><td>Name</td></tr>";
while($row = mysql_fetch_row($rs)) echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
/* 定义量变(数组)row,并利用while循环,把数据一一写出来.
函数mysql_fetch_row()的意思是:将查询结果$rs单列拆到阵列变数中.
$row[0] 和 $row[1] 的位置可以换*/

echo "</table>";
?>
<br />
<!--=========     方法二     =========-->
<br />

<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />";
/* id和name可以换位置 */
?>
<br />
<!--=========     方法三     =========-->
<br />

<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_array($rs)) echo "$row[id]   $row[name] <br />";
/* id和name可以换位置 */
?>

<!--=========     方法三最快     =========-->

<?
@mysql_close($dbh);
/* 关闭到mysql数据库的连接 */
?>

TOP

while($row = mysql_fetch_array($rs)) echo "$row[id]   $row[name] <br />";

最好写成

while ($row = mysql_fetch_array($rs)) {
    echo "{$row['id']}   {$row['name']} <br />";
}

建议使用花括号将控制结构各部分标识出来,这可以增加代码的可读性,同时避免在结构部分增加新行后引入逻辑上的错误



应该始终在用字符串表示的数组索引上加上引号。例如用 $foo['bar'] 而不是 $foo[bar]。但是为什么 $foo[bar] 错了呢?你可能在老的脚本中见过如下语法:

<?php
$foo[bar] = 'enemy';
echo $foo[bar];
// etc
?>

这样是错的,但可以正常运行。那么为什么错了呢?原因是此代码中有一个未定义的常量(bar)而不是字符串('bar'-注意引号),而 PHP 可能会在以后定义此常量,不幸的是你的代码中有同样的名字。它能运行,是因为 PHP 自动将裸字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。

TOP

发新话题