我想知道在查询数据库时是否需要使用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>";
答案 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;吨 存在