PHP 和 MySQL 编程/数据库连接
您只能在文件中存储信息,只能做这么多。当您需要存储大量数据,并在这些数据上执行密集的数字运算时,没有比好的 SQL 数据库更好的了。在本节中,我们将讨论将 PHP 连接到 MySQL 数据库并执行查询以及从数据库中检索数据。
在我们能够与任何数据库交互之前,我们需要做的第一件事是打开与该数据库服务器的连接。这是通过使用mysql_connect()函数完成的,该函数返回一个数据库处理程序,类似于处理文件时的文件处理程序。然后使用数据库处理程序选择要使用的活动数据库。
以下是建立与数据库服务器的连接以及选择要使用的数据库的代码
$db = "database1";
$link = mysql_connect("localhost", "username", "password");
mysql_select_db($db, $link);
或者
<?php
$conn = new mysqli("localhost", "root", "mySecretDBpass", "thegeekstuff");
if ($conn->connect_error) {
die("ERROR: Unable to connect: " . $conn->connect_error);
}
echo 'Connected to the database.<br>';
$result = $conn->query("SELECT name FROM employee");
echo "Number of rows: $result->num_rows";
$result->close();
$conn->close();
建立与数据库的连接后,您必然会想要执行数据库查询。要对所选数据库创建查询,我们使用mysql_query()函数。如果您使用SELECT查询,则从该查询返回的数据将传递给mysql_query()函数,该函数反过来将数据返回给您可以指定的变量。在以下示例中,执行了两个查询,第一个查询不返回任何数据,第二个查询返回数据。
// A Query without any returned data
mysql_query ("INSERT INTO `table1` ('val1', 'val2')");
// A Query with returned data
$query = mysql_query("SELECT * FROM `table1`");
有许多方法可以从SELECT查询中检索数据。
例如,我们来看以下代码
# --- Connect To Database ---
$db = "db1";
$link = mysql_connect("localhost", "user", "pass");
mysql_select_db($db, $link);
# --- Select Info from Database ---
$result = mysql_query ("SELECT val1, val2 FROM tbl1");
要从$result变量中检索数据,我们可以使用许多方法之一。但是,推荐的方法是依次遍历表的每一行,将其存储到一维数组中。我们通过使用mysql_fetch_row()函数来完成此操作,将存储结果的变量传递给该函数。这是一个简单的示例
while ($row = mysql_fetch_row($result)){
foreach ($row as $field) {
print "$field . ";
}
print "";
}
这将简单地以类似表格的格式输出结果。
以下是使用此方法的另一个示例
$counter = 0;
while ($row = mysql_fetch_row($result)){
$val1[$counter] = $row[0];
$val2[$counter] = $row[1];
$counter++;
}
$numRows = $counter;
上面的示例只是将结果拆分成多个一维数组,以便于操作。
完成操作后,并非总是需要关闭连接,但建议这样做。但是,如果您要打开与另一个数据库的新连接,则必须关闭与数据库的连接。
要关闭与数据库的连接,我们使用mysql_close()函数,如下所示
mysql_close();
这在调试时很有用,即使您只想确保数据库不会出现意外行为。创建查询后,通过mysql_query()函数生成的任何错误消息都将存储在mysql_error()函数中。以下是一个代码片段示例,用于显示错误消息。但是,如果没有错误消息,则会返回一个空字符串。
print mysql_error();