(1)通过php操作数据库分为4步:
——连接数据库服务器,如mysql。
——选择一个数据库。
——设置显示的字符集,防止中文显示错误。
——执行sql语句。
<?php //利用php连接数据库,需要注意的是有时候尽管连接上数据库,但是部分操作还是需要权限的,并非可以执行所有操作 $db_host="localhost"; $db_user="root"; $db_pwd="root"; $db_name="newone"; //这里的@是屏蔽mysql_connect语句返回的系统自动生成的错误信息,保证安全以及用户友好。 [email protected]_connect($db_host,$db_user,$db_pwd); if ($link) { echo "MySql服务器连接成功!<br />"; //mysql_select_db()第二个参数是连接符,如果省略则默认是上一个成功的连接符,就是$link,以下很多函数都省略了此参数 if (mysql_select_db($db_name)) { echo "成功进入数据库".$db_name."<br />"; //设置字符集,否则中文无法显示,以下用charset和names均可 //mysql_query("set charset utf8;"); mysql_query("set names utf8;"); //引号中,执行语句的最后可以加分号,也可以省略分号 $result=mysql_query("select * from newtable;"); //直接执行下面语句,输出的是资源结果Resource id #4,我们需要从中取出数据 print_r($result); //mysql_fetch_assoc()和用mysql_fetch_array()加上第二个可选参数MYSQL_ASSOC完全相同,返回关联数组。 //也可以用mysql_fetch_row(),返回枚举数组。 //用while($row=mysql_fetch_row($result)){$rows[]=$row;}实现取出所有值 $rows=mysql_fetch_assoc($result); dump($rows); }else { echo "没找到数据库"; } }else{ //mysql_error()是显示最近一次的错误信息,只显示错误文本信息,而不会把文件等等信息显示出来 echo "WARNING:MySql服务器连接失败!".mysql_error(); } function dump($arr){ echo "<pre>"; print_r($arr); echo "</pre>"; } ?>
(2)当然,上述部分代码书写习惯,也可以变成如下。比如定义常量的时候,用define代替。
define("db_host", "localhost");
还有,不实用if嵌套,而是单独写,如果遇到错误信息,只要终止程序继续执行即可,用exit("连接数据库服务器错误");
(3)一般,连接数据库的php代码写在整个html文档的最前面。
然后在<body></body>中需要使用到数据中的数据时,用mysql_fetch_row等获取数据,并且利用<? echo $row[0] ?>等把数据库中的内容动态地显示在网页中。
(4)mysql_fetch_row()和mysql_fetch_array()和mysql_fetch_assoc()都是从结果集中取出一行数据,然后指向下一行。区别在于:
——mysql_fetch_row()最终结果是枚举数组,即下标是枚举数字,即输出值的时候用$row[0],$row[1]之类的。
——mysql_fetch_assoc()取出的结果是关联数组,就是原有的字符下标,即$row["id"],$row["title"]即可输出值。
——mysql_fetch_array()取出的默认是混合的。但也可以指定第二个参数,可以是枚举下标也可以选择字符下标。默认混合的话,输出两种,一种是枚举下标一种是字符下标,如下,所以取值的话随便写哪一种都可以取值:
Array ( [0] => 3 [id] => 3 [1] => 反腐力度加大 [title] => 反腐力度加大 )
(5)输出结果集中所有行,就是用while循环。
while ($rows=mysql_fetch_array($result)) { dump($rows); }
(6)结果集中记录的数量是mysql_num_rows();
echo mysql_num_rows($result);
时间: 2024-10-12 21:34:09