您的位置:首页 > 编程语言 > PHP开发

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

2015-02-09 11:02 489 查看
(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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: