<?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中有没有相同的东西?
在上面的游标进入图片的程序中?
答案 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连接没有任何关联。