我们应该在php中使用select_db()吗?

时间:2011-06-03 18:25:24

标签: php

我想知道在查询数据库时是否需要使用select_db()函数,因为我们已经在编写查询时要使用哪个表,如"select * from users"

我试过没有它并且它有效但我不知道该功能提供了什么样的善良?

//$sau_db->select_db("users");

$query = "select * from users";

$results = $sau_db->query($query);

echo "<ul>";
for($i=0;$i < $results->num_rows; $i++)
{   
    $row = $results->fetch_assoc();
    echo "<li>".$row["first_name"].' '.$row["last_name"]."</li>";
}
echo "</ul>";

4 个答案:

答案 0 :(得分:4)

选择数据库与选择表格不同。数据库可以包含多个表,MySQL服务器可以包含多个数据库。我不确定您使用什么系统来访问您的数据库,但除非在其他地方配置(很可能是这样),通常需要选择数据库。

通常按以下link所示使用。

答案 1 :(得分:2)

如果你没有在连接中指定数据库实例,那么

select_db不是表名,它是默认数据库用来处理查询的。

答案 2 :(得分:2)

使用select_db可以消除您正在使用的数据库的任何歧义。

通常,数据库用户与默认数据库关联。当他们建立连接然后进行任何查询时,它默认使用该数据库来选择/插入/更新/删除/等。

通常,select_db()是明智的,因为如果更改了默认数据库,您可能会遇到灾难性的结果。例如,如果您有MYDBDEV,MYDBTEST和MYDBPROD数据库,并且用户连接的默认数据库为MYDBDEV,那么如果由于某种原因有人将其更改为具有MYDBPROD的默认数据库,那么您的代码会突然修改MYDBPROD没有更改代码或任何配置文件。

答案 3 :(得分:1)

上面给出了非常正确的答案。

使用默认mysql数据库(在同一台服务器上)的示例查看您的自己:

<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("cdcol") or die(mysql_error());

// Retrieve all the data from the "example" table
$result = mysql_query("SELECT * FROM cds")
or die(mysql_error());  

// store the record of the "example" table into $row
$row = mysql_fetch_array( $result );
// Print out the contents of the entry 

echo "coloumn1: ".$row['titel'];
echo " coloumn2: ".$row['interpret'];

////////////////////// this will not work
###################mysql_select_db("mysql") or die(mysql_error());
// Retrieve all the data from the "example" table
$result = mysql_query("SELECT * FROM help_category")
or die(mysql_error());  

// store the record of the "example" table into $row
$row = mysql_fetch_array( $result );
// Print out the contents of the entry 

echo "<br><br>coloumn1: ".$row['help_category_id'];
echo " coloumn2: ".$row['name'];
?>

只有当你取消注释mysql_select_db(&#34; mysql&#34;)时才会有第二个查询工作, 否则你会得到以下错误,因为当前连接是指cdcol数据库:

  

表&#39; cdcol.help_category&#39;没有按&#39;吨   存在