PHP MySQLi 函数:mysqli_query、mysqli_connect、mysqli_fetch_array
PHP 拥有丰富的内置函数用于操作 MySQL 数据库。
PHP mysqli_connect 函数
PHP mysql connect 函数用于连接到 MySQL 数据库服务器。
它具有以下语法。
<?php; $db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password); ?>
这里,
- “$db_handle”是数据库连接资源变量。
- “mysqli_connect(…)”是php数据库连接的函数
- “$server_name” 是托管服务器的名称或 IP 地址 MySQL 服务器。
- “$user_name” 是有效的用户名 MySQL 服务器。
- “$password” 是与用户名关联的有效密码 MySQL 服务器。
PHP mysqli_select_db 函数
mysqli_select_db 函数用于选择数据库。
它具有以下语法。
<?php mysqli_select_db($db_handle,$database_name); ?>
这里,
- “mysqli_select_db(…)” 是返回 true 或 false 的数据库选择函数
- “$database_name” 是数据库的名称
- “$link_identifier” 为可选,用于传入服务器连接链接
PHP mysqli_query 函数
mysqli_query 函数用于执行 SQL 查询。
该函数可用于执行以下查询类型;
- 插页
- 从我们的数据库中通过 UL Prospector 平台选择
- 更新
- 删除
它具有以下语法。
<?php mysqli_query($db_handle,$query) ; ?>
这里,
- “mysqli_query(…)” 是执行 SQL 查询的函数。
- “$query” 是要执行的 SQL 查询
- “$link_identifier” 是可选的,它可以用来传入服务器连接链接
PHP mysqli_num_rows 函数
mysqli_num_rows 函数用于获取选择查询返回的行数。
它具有以下语法。
<?php mysqli_num_rows($result); ?>
这里,
- “mysqli_num_rows(…)” 是行计数函数
- “$result” 是 mysqli_query 结果集
PHP mysqli_fetch_array 函数
mysqli_fetch_array 函数用于从查询结果集中获取行数组。
它具有以下语法。
<?php mysqli_fetch_array($result); ?>
这里,
- “mysqli_fetch_array(…)”是用于获取行数组的函数
- “$result”是mysqli_query函数返回的结果。
PHP mysqli_close 函数
mysqli_close 函数用于关闭打开的数据库连接。
它具有以下语法。
<?php mysqli_close($db_handle); ?>
这里,
- “mysqli_close(…)” 是 PHP 函数
- “$link_identifier” 为可选,用于传入服务器连接资源
让我们看一下利用这些功能的实际例子。
每一次都创造出 MySQL 本教程假设您了解数据库 MySQL 和 SQL,如果您不熟悉这些术语,请参阅我们的 MySQL 和 SQL 教程。
我们将创建一个名为 my_personal_contacts 的简单数据库,其中只有一个表。
以下是创建数据库和表的步骤。
- 连接到 MySQL 使用您最喜欢的访问工具,例如 MySQL 工作台、phpMyAdmin 等
- 创建名为 my_person_contacts 的数据库
- 执行下面显示的脚本来创建表并插入一些虚拟数据
<?php CREATE TABLE IF NOT EXISTS `my_contacts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `full_names` varchar(255) NOT NULL, `gender` varchar(6) NOT NULL, `contact_no` varchar(75) NOT NULL, `email` varchar(255) NOT NULL, `city` varchar(255) NOT NULL, `country` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; INSERT INTO `my_contacts` (`id`, `full_names`, `gender`, `contact_no`, `email`, `city`, `country`) VALUES (1, 'Zeus', 'Male', '111', 'zeus @ olympus . mt . co', 'Agos', 'Greece'), (2, 'Anthena', 'Female', '123', 'anthena @ olympus . mt . co', 'Athens', 'Greece'), (3, 'Jupiter', 'Male', '783', 'jupiter @ planet . pt . co', 'Rome', 'Italy'), (4, 'Venus', 'Female', '987', 'venus @ planet . pt . co', 'Mars', 'Italy'); ?>
现在我们已经建立了一个可以通过 PHP 进行操作的数据库。
从数据库读取记录 我们现在将创建一个从数据库打印记录的程序。
<?php
$dbh = mysqli_connect('localhost', 'root', 'melody');
//connect to MySQL server if (!$dbh)
die("Unable to connect to MySQL: " . mysqli_error());
//if connection failed output error message
if (!mysqli_select_db($dbh,'my_personal_contacts'))
die("Unable to select database: " . mysqli_error());
//if selection fails output error message
$sql_stmt = "SELECT * FROM my_contacts";
//SQL select query
$result = mysqli_query($dbh,$sql_stmt);
//execute SQL statement
if (!$result)
die("Database access failed: " . mysqli_error());
//output error message if query execution failed
$rows = mysqli_num_rows($result);
// get number of rows returned
if ($rows) {
while ($row = mysqli_fetch_array($result)) {
echo 'ID: ' . $row['id'] . '<br>';
echo 'Full Names: ' . $row['full_names'] . '<br>';
echo 'Gender: ' . $row['gender'] . '<br>';
echo 'Contact No: ' . $row['contact_no'] . '<br>';
echo 'Email: ' . $row['email'] . '<br>';
echo 'City: ' . $row['city'] . '<br>';
echo 'Country: ' . $row['country'] . '<br><br>';
}
}
mysqli_close($dbh); //close the database connection
?>
执行上述代码将返回下图所示的结果
插入新记录
现在让我们看一个在表中添加新记录的示例。下面的代码显示了实现过程。
<?php
$dbh = mysqli_connect('localhost', 'root', 'melody');
//connect to MySQL server if (!$dbh)
die("Unable to connect to MySQL: " . mysqli_error());
//if connection failed output error message
if (!mysqli_select_db($dbh,'my_personal_contacts'))
die("Unable to select database: " . mysql_error());
//if selection fails output error message
$sql_stmt = "INSERT INTO `my_contacts` (`full_names`,`gender`,`contact_no`,`email`,`city`,`country`)";
$sql_stmt .= " VALUES('Poseidon','Mail','541',' poseidon @ sea . oc ','Troy','Ithaca')";
$result = mysqli_query($dbh,$sql_stmt); //execute SQL statement
if (!$result)
die("Adding record failed: " . mysqli_error());
//output error message if query execution failed echo "Poseidon has been successfully added to your contacts list";
mysqli_close($dbh); //close the database connection
?>
执行上述代码输出“Poseidon 已成功添加到您的联系人列表”返回选择查询示例并再次检索您的联系人。
查看波塞冬 (Poseidon) 是否已添加到您的列表中。
更新记录现在让我们看一个更新数据库中记录的示例。
假设波塞冬更改了他的联系电话和电子邮件地址。
<?php
$dbh = mysqli_connect('localhost', 'root', 'melody');
//connect to MySQL server
if (!$dbh)
die("Unable to connect to MySQL: " . mysqli_error());
//if connection failed output error message
if (!mysqli_select_db($dbh,'my_personal_contacts'))
die("Unable to select database: " . mysql_error());
//if selection fails output error message
$sql_stmt = "UPDATE `my_contacts` SET `contact_no` = '785',`email` = ' poseidon @ ocean . oc ';
//SQL select query $sql_stmt .= " WHERE `id` = 5";
$result = mysqli_query($dbh,$sql_stmt);
//execute SQL statement if (!$result)
die("Deleting record failed: " . mysqli_error());
//output error message if query execution failed
echo "ID number 5 has been successfully updated";
mysqli_close($dbh); //close the database connection
?>
删除记录
现在让我们看一个从数据库中删除记录的示例。假设 Venus 对我们发出了限制令,我们必须从我们的 数据库.
<?php
$dbh = mysqli_connect('localhost', 'root', 'melody');
//connect to MySQL server
if (!$dbh)
die("Unable to connect to MySQL: " . mysqli_error());
//if connection failed output error message
if (!mysqli_select_db($dbh,'my_personal_contacts'))
die("Unable to select database: " . mysqli_error());
//if selection failes output error message $id = 4;
//Venus's ID in the database
$sql_stmt = "DELETE FROM `my_contacts` WHERE `id` = $id";
//SQL Delete query
$result = mysqli_query($dbh,$sql_stmt);
//execute SQL statement
if (!$result)
die("Deleting record failed: " . mysqli_error());
//output error message if query execution failed
echo "ID number $id has been successfully deleted";
mysqli_close($dbh); //close the database connection
?>
PHP 数据访问对象 PDO
PDO 是一个允许我们操作不同数据库引擎的类,例如 MySQL、PostGres、MS SQL Server 等。
下面的代码显示了使用 PDO 对象的数据库访问方法。
注意: 下面的代码假设您了解 SQL 语言、数组、异常处理和 foreach 循环。
<?php
try {
$pdo = new PDO("mysql:host=localhost;dbname=my_personal_contacts", 'root', 'melody');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
$sql_stmt = "SELECT * FROM `my_contacts`";
$result = $pdo->query($sql_stmt);
$result->setFetchMode(PDO::FETCH_ASSOC);
$data = array();
foreach ($result as $row) {
$data[] = $row;
}
print_r($data);
}
catch (PDOException $e) {
echo $e->getMessage();
}
?>
这里,
- “try{…catch…}” 是异常处理块
- “$pdo = new PDO(“mysql…” 创建 PDO 对象的实例并传递数据库驱动程序、服务器和数据库名称、用户 ID 和密码。
- “$pdo->setAtt…”设置PDO错误模式和异常模式属性
- “$pdo->exec('SET NA…” 设置编码格式
ODBC ODBC 是开放数据库连接的缩写。它具有以下基本语法。
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
这里,
- “odbc_connect” 是 PHP 内置函数
- “$dsn” 是 ODBC 数据源名称。
- “$user_name” 是可选的,用于 ODBC 用户名
- “$password” 是可选的,用于 ODBC 密码
所用示例假设您;
- 正在使用 Windows OS
- 您已创建指向 northwind 的 ODBC 链接 Microsoft 访问名为 northwind 的数据库
下面是ODBC数据访问的实现代码
<?php
$dbh = odbc_connect('northwind', '', '');
if (!$dbh) {
exit("Connection Failed: " . $dbh);
}
$sql_stmt = "SELECT * FROM customers";
$result = odbc_exec($dbh, $sql_stmt);
if (!$result) {
exit("Error access records");
}
while (odbc_fetch_row($result)) {
$company_name = odbc_result($result, "CompanyName");
$contact_name = odbc_result($result, "ContactName");
echo "<b>Company Name (Contact Person):</b> $company_name ($contact_name) <br>";
}
odbc_close($dbh);
?>
结语
- MySQL 是大多数网络托管服务器上可用的开源关系数据库管理
- PHP 拥有丰富的内置函数,可以简化使用 MySQL
- PDO 是 PHP 数据对象的缩写;它用于使用同一对象连接到不同的数据库引擎
- PHP 使用 odbc_connect 函数通过 ODBC 操作数据库

