PHP具有丰富的内置函数集合,用于处理MySQL数据库。
PHP mysql connect函数用于连接到MySQL数据库服务器。
它具有以下语法。
<?php;
$db_handle = mysqli_connect($db_server_name, $db_user_name, $db_password);
?>
这里,
mysqli_select_db函数用于选择数据库。
它具有以下语法。
<?php
mysqli_select_db($db_handle,$database_name);
?>
这里,
mysqli_query函数用于执行SQL查询。
该函数可用于执行以下查询类型;
它具有以下语法。
<?php
mysqli_query($db_handle,$query) ;
?>
这里,
mysqli_num_rows函数用于获取选择查询返回的行数。
它具有以下语法。
<?php
mysqli_num_rows($result);
?>
这里,
mysqli_fetch_array函数用于从查询结果集中获取行数组。
它具有以下语法。
<?php
mysqli_fetch_array($result);
?>
这里,
mysqli_close函数用于关闭打开的数据库连接。
它具有以下语法。
<?php
mysqli_close($db_handle);
?>
这里,
让我们看看利用这些功能的实际示例。
创建MySQL数据库本教程假定您具有MySQL和SQL的知识,如果您不熟悉这些术语,请参考我们的MySQL和SQL教程。
我们将仅使用一个表创建一个名为my_personal_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添加到您的列表中。
更新记录现在让我们看一个更新数据库中记录的示例。
假设波塞冬(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
?>
删除记录
现在来看一个从数据库中删除记录的示例。 假设金星对我们有禁止令,我们必须从数据库中删除她的联系方式。
<?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
?>
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();
}
?>
这里,
ODBC ODBC是开放数据库连接性的首字母缩写。 它具有以下基本语法。
<?php $conn = odbc_connect($dsn, $user_name, $password); ?>
这里,
所使用的示例假定是您。
下面是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);
?>