用php连接数据库

来源:互联网 发布:雪人翻译软件下载 编辑:程序博客网 时间:2024/05/17 08:55

PHP操作mysql服务器

php作为mysql服务器的客户端!

 

1:连接认证

 

2:发送sql

         执行sql,生成结果(mysql-server)

3:处理结果

 

关闭连接

 

用php连接数据库是将php作为mysql服务器的客户端。

二者的关系如下:

所以php连接数据库包含下面三个操作。

1:连接认证

首先连接上mysql数据库需要4个参数

 连接的参数:

   Localhost

   Sort

 认证的参数:

   Username

   Password

代码如下:

$locallhost = "127.0.0.1";$username = "root";$password = "1234567";$port = "3306";

 其次获得连接资源

使用函数 mysql_connect();  打开非持久的 MySQL 连接。

用法:mysql_connect("$locallhost:$port",$username,$password)
其中前两个参数是为了连接服务器,后两个参数是为了认证服务器

   代码如下:

$locallhost = "127.0.0.1";$username = "root";$password = "1234567";$port = "3306";$link = mysql_connect("$locallhost:$port", $username, $password);if (!$link = mysql_connect("$locallhost:$port", $username, $password)) {    die("This link is Error");}      var_dump($link);

$link得到连接资源,资源值是布尔型。成功返回资源,失败返回false.

 运行结果如下:


 成功,获得连接资源。

2:php向mysql服务器发送sql

 使用mysql_query()函数

     mysql_query(sql, 连接资源);(Sql即为你要发送的sql语句)

      失败返回false,成功返回资源或者true

 检错函数:

      mysql_error($link);  查询错误信息。

      mysql_errno($link)  查询错误代码

代码如下:

//2:向mysql服务器发送sql语句$sql = "show databases";$result = mysql_query($sql, $link);if (!$result) {    echo 'sql执行失败:', $sql, '<br>';    echo '错误信息:', mysql_error($link), '<br>';    echo '错误代码:', mysql_errno($link), '<br>';    die;}//       var_dump($result);

 错误结果:


3:处理结果

处理返回数据

执行成功,返回数据可以是资源也可以是true。执行失败,返回的一定是false!

判断返回数据是资源还是true的依据是:执行的sql语句是否返回数据!

  见下表:

 

  返回资源->  sql返回数据

  返回true->  sql 返回true


处理返回资源:

Var_dump($result)

如下图结果:

称之为结果集(result set类型资源!

结果集:结果的集合!

将数据从结果集中取出来,称之为 fetch!

使用函数:

mysql_fetch_assoc|row|array。功能完全一致,只是返回的数据格式不同!

 

在结果集中,取得一条记录。结果集内也存在结果集记录指针的概念!

fetch一次,只能取得当前记录,但是可以向后移动记录指针!配合上循环结构可以将所有的记录从结果集中取出!

如下图:

while ($rows = mysql_fetch_assoc($result2)) {    var_dump($rows, '<br>');}
页面结果:


特别注意:

任何有结果的sql操作,返回的都是结果集!

结果集,就是一个二维表的结构!是一行行的记录组成!

即使,结果集中只有一条记录

甚至,我们只需要返回一条数据!

 

 处理从数据库取出的数据乱码

//防止乱码mysql_query("SET NAMES 'utf8'");

如下例子:

//返回结果集$sql1 = "select * from test_database.student";//防止乱码mysql_query("SET NAMES 'utf8'");$result1 = mysql_query($sql1, $link);while ($rows = mysql_fetch_assoc($result1)) {    var_dump($rows, '<br>');}
结果如下:

 

 就算只有一条记录,结果也算是一个结果集而不是一个数字。

$sql2="select COUNT(stuname) from test_database.student";mysql_query("SET NAMES 'utf8'");$result2 = mysql_query($sql2, $link);if(!$result2){    echo 'sql执行错误',$sql2,'<br>';    echo '错误信息'.mysql_error($link);    echo '错误代码'.mysql_errno($link);}while ($rows = mysql_fetch_assoc($result2)) {    var_dump($rows, '<br>');}

 结果:


释放资源

关闭连接资源:mysql_close($link)

关闭结果集资源:mysql_free_result($result2)

//1:关闭连接资源 mysql_close($link);//2:关闭结果集资源 mysql_free_result($result2);





1 0
原创粉丝点击