网站导航:首页-网页制作语言-在PHP中执行SQL语句操作数据库

在PHP中执行SQL语句操作数据库

  在PHP程序中执行sql语句是学习PHP中非常重要的一部分,本文将介绍一下相关的系统函数,并且给出一些例子,来帮助大家理解。

  在编写相关代码之前,首先需要修改php.ini文件来加载mysql组件,方法为:先将extension=php_mysql.dll前面的分号删掉,在检查extension_dir = " " 中的路径是否正确,均操作无误后,保存文件即可。

  接下来介绍相应的系统函数。

1、连接mysql服务器

  连接数据库要使用一个系统函数,格式为mysql_connect(mysql服务器,用户名,密码) 此函数如果连接成功将返回此连接的连接标识符。其中的mysql服务器可以使用localhost来连接本机数据库,也可以填写IP地址来连接远程数据库,但不能使用域名。如果有需要使用域名,可以先使用gethostbyname函数得到解析的IP地址再执行连接数据库操作。连接数据库操作举例如下:

<?php
$conn=mysql_connect("localhost","root","root");
echo $conn;
?>

  如果上述代码中的参数均正确,运行后可以得到连接数据库的连接标识符,如果有错误通常会导致服务器错误(通常是500错误,大家可自行尝试,将密码修改为错误的密码即可)。为了防止服务器错误,我们可以采用以下两种方案来判断是否成功连接数据库。

  方法一:利用@字符来屏蔽错误,并利用返回的连接标识符来判断是否连接成功,举例如下:

<?php
$conn=@mysql_connect("localhost","root","root");
if($conn)
echo "连接成功";
else
echo "连接失败";
?>

  上述代码执行后会根据连接情况输出“连接成功”或“连接失败”。

  方法二:利用@字符来屏蔽错误,并利用or die来输出错误提示,举例如下:

<?php
$conn=@mysql_connect("localhost","root","root") or die ("连接失败");
echo "连接成功";
?>

  上述代码执行后与前一段代码作用相同。

2、选择其中的一个数据库

  在MySQL服务器中可能含有不止一个数据库,我们需要从中选择一个我们要操作的数据库,方法是使用mysql_select_db函数,格式为mysql_select_db(打开的数据库名,连接标识符),这个函数中的连接标识符就是在连接服务器时返回的连接标识符,如果连接了多个服务器,写这个链接标识符是非常重要的,即通过连接标识符来判断想选择的数据库是哪一个MySQL服务器中的数据库。如果连接标识符被省略,则默认使用最后一次连接的服务器。选择数据库的方法举例如下:

<?php
$conn=mysql_connect("localhost","root","root");
mysql_select_db("test",$conn);
?>

  在选择数据库的代码中同样可以使用or die来判断选择数据库是否失败,这里就不再举例,大家可以自行尝试。

3、如何执行SQL语句

  执行SQL语句用的的系统函数为mysql_query,其格式为mysql_query(SQL语句,连接标识符),关于连接标识符的说明与上一条相同,SQL语句既可以直接写在函数的参数中,也可以赋值给一个变量,再将变量放在参数中。

  此函数又返回值,如果执行的操作不是查询操作则操作成功返回true反正返回false,执行SQL语句举例如下:

<?php
$conn=mysql_connect("localhost","root","root");
mysql_select_db("test",$conn);
$sql="INSERT INTO `test`(`uid`, `regdate`, `remark`) VALUES (\"王老八\",now(),\"无\")";
$rel=mysql_query($sql,$conn);
if($rel)
echo "插入成功";
else
echo "插入失败";
?>

4、在查询数据库的返回值存至数组的两个查询函数

  mysql_fetch_row(result)用来查询结果的一行保存至数组,该数组下标从0开始,每一个数组元素对应 一个域。通过循环,可以将查询结果全部获得。

  mysql_fetch_array(result)和mysql_fetch_row(resule)功能基本相同,只不过它除了可以用从0开始的偏移量作索引,还可以用域名作索引。

  两个函数均可以返回下一行的所有域值,并将其保存至一个数组中,没有行时返回false。

  举例如下:

<?php
$conn=mysql_connect("localhost","root","root");
mysql_select_db("test",$conn);
$sql="SELECT * FROM `test`";
$rel=mysql_query($sql,$conn);
while($rel2=mysql_fetch_array($rel))
{
echo "id:".$rel2["id"]."<br>";
echo "uid:".$rel2["uid"]."<br>";
echo "regdate:".$rel2["regdate"]."<br>";
echo "remark:".$rel2["remark"]."<br>--------------------<br>";
}
?>

5、解决中文乱码问题的方法

  中午发生乱码通常是因为编码的问题有可能网页注意将数据库的编码转换为与网页相同的编码即可。可以通过在PHP语句中插入mysql_query("set names 'utf8'"),即可,如果使用的是GBK编码,则可以将utf8修改为GBK。大家可以自行尝试,小编这里就不举例子了。

6、其他常用的mysql函数

  mysql_num_rows 用于计算查询结果中所得行的数目

  mysql_error 返回错误信息

  mysql_close 关闭 MySQL 链接

已经到本页底线啦,您可以:返回目录页|返回首页