在php中使用mysql的基础知识点回顾

(1)通过php操作数据库分为4步:

——连接数据库服务器,如mysql。

——选择一个数据库。

——设置显示的字符集,防止中文显示错误。

——执行sql语句。

<?php 
//利用php连接数据库,需要注意的是有时候尽管连接上数据库,但是部分操作还是需要权限的,并非可以执行所有操作
$db_host="localhost";
$db_user="root";
$db_pwd="root";
$db_name="newone";
//这里的@是屏蔽mysql_connect语句返回的系统自动生成的错误信息,保证安全以及用户友好。
$link=@mysql_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);


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。