php中的mysql_query函数

时间:2010-11-02 03:06:13

标签: php mysql oracle

<?php 
  $con= mysql_connect("localhost","root","mysql");
  mysql_select_db("Db_name",$con);

  $res=mysql_query("select *from table_name");

  mysql_close($con);   // closing connection before fetching contents.

  while($r=mysql_fetch_array($res)) {
    echo $r['ename'];
  }

?>

即使我在从表中获取内容之前关闭连接,此程序仍然有效。

为了从$res连接获取表内容是不是必要的?

$res只是一个程序变量吗?如果是这样,它使用什么样的数据结构(关联数组?)

在oracle中我们有隐式游标和显式游标。 mysql中有没有相同的东西?

在上面的游标进入图片的程序中?

4 个答案:

答案 0 :(得分:3)

在您的情况下,

$res是一种称为“资源”的特殊类型。简单地说,它是mysql_fetch_ *函数运行返回的数据的集合。因此,它可以超越连接。查看the documentation了解详情。

答案 1 :(得分:2)

MySQL客户端库将在调用mysql_query()之前获取整个结果集,这解释了代码工作原理。

您可以使用mysql_unbuffered_query()以递增方式获取行,在这种情况下,您必须保持连接打开

请注意,获取行是在MySQL客户端代码中处理的。 $res只是一个不透明的 ressource类型,表示内部结果集对象(缓冲与否)。您只能通过将其传递给其他MySQL函数来操作该资源。

答案 2 :(得分:0)

  

为了从$ res连接获取表格内容不是必要的吗?

你为什么不试试看?

无论如何,手动关闭连接的原因是什么?

  

$ res只是一个程序可变吗?如果是这样,它使用什么样的数据结构(关联数组?

是的,它是一个变量。您可以使用var_dump($res);

查看内部内容
  

在oracle中我们有隐式游标和显式游标。在mysql中有没有相同的东西?   在上面的游标进入图片的程序中?

您想要解决的具体任务是什么?

答案 3 :(得分:0)

正如杰森所说,$ res就像资源类型的正常变量。即使在mysql连接关闭后,此变量仍保持其值,因为它与mysql连接没有任何关联。