🐌博主主页:🐌倔强的大蜗牛🐌
📚专栏分类:PHP
📚参考教程:菜鸟\编程网
❤️感谢大家点赞👍收藏⭐评论✍️
目录
一、PHP 连接 MySQL
PHP 数据库是指在 PHP 脚本中与数据库进行交互的过程。PHP 支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。在 PHP 中,我们可以使用不同的扩展和函数来连接和操作数据库。以下是一些常用的 PHP 数据库扩展:
- MySQLi:MySQL 改进扩展,用于连接 MySQL 数据库。
- PDO:PHP 数据对象,提供了一个轻量级、一致的接口来处理不同类型的数据库。
- PostgreSQL:用于连接 PostgreSQL 数据库。
- SQLite:用于连接 SQLite 数据库。
MySQLi 连接和操作 MySQL 数据库的示例:
在实际应用中,为了提高代码的可维护性和可读性,建议使用 PDO 扩展来处理数据库操作。
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建 SQL 查询
$sql = "SELECT id, name FROM myTable";
// 执行查询
$result = $conn->query($sql);
// 输出结果
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. "
";
}
} else {
echo "0 结果";
}
// 关闭连接
$conn->close();
?>
二、PHP MySQL 创建数据库
要在 PHP 中使用 MySQL 创建数据库,你可以使用 mysqli
扩展或者 PDO
扩展。
使用 MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建数据库
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "Error creating database: " . $conn->error;
}
// 关闭连接
$conn->close();
?>
使用 PDO:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
try {
$conn = new PDO("mysql:host=$servername", $username, $password);
// 设置 PDO 错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE myDBPDO";
// 使用 exec() ,因为没有结果返回
$conn->exec($sql);
echo "数据库创建成功<br>";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
三、PHP 创建 MySQL 表
要在 PHP 中使用 MySQL 创建表,你可以使用 mysqli
扩展或者 PDO
扩展
使用 MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 创建表
$sql = "CREATE TABLE myTable (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
age INT(3) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
echo "表 myTable 创建成功";
} else {
echo "创建表错误: " . $conn->error;
}
// 关闭连接
$conn->close();
?>
使用 PDO:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
// 创建连接
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 创建表
$sql = "CREATE TABLE myTable (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
age INT(3) NOT NULL
)";
$conn->exec($sql);
echo "表 myTable 创建成功";
} catch(PDOException $e) {
echo "创建表错误: " . $e->getMessage();
}
// 关闭连接
$conn = null;
?>
四、PHP MySQL 插入数据
使用 MySQLi 和 PDO 向 MySQL 插入数据
语法规则:
- PHP 中 SQL 查询语句必须使用引号
- 在 SQL 查询语句中的字符串值必须加引号
- 数值的值不需要引号
- NULL 值不需要引号
使用 MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 插入数据
$sql = "INSERT INTO myTable (name, age) VALUES ('John Doe', 30)";
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功";
} else {
echo "Error: " . $sql . "
" . $conn->error;
}
// 关闭连接
$conn->close();
?>
使用 PDO:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
// 创建连接
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入数据
$sql = "INSERT INTO myTable (name, age) VALUES ('John Doe', 30)";
$conn->exec($sql);
echo "新记录插入成功";
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
// 关闭连接
$conn = null;
?>
五、PHP MySQL 预处理语句
在 PHP 中,使用 MySQL 预处理语句可以提高查询性能、增强安全性,并防止 SQL 注入攻击。
使用 MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 预处理查询
$stmt = $conn->prepare("INSERT INTO myTable (name, age) VALUES (?, ?)");
$stmt->bind_param("si", $name, $age);
$name = "John Doe";
$age = 30;
$stmt->execute();
echo "新记录插入成功";
// 关闭连接
$stmt->close();
$conn->close();
?>
使用 PDO:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
// 创建连接
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 预处理查询
$stmt = $conn->prepare("INSERT INTO myTable (name, age) VALUES (:name, :age)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
$name = "John Doe";
$age = 30;
$stmt->execute();
echo "新记录插入成功";
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
// 关闭连接
$conn = null;
?>
六、PHP MySQL 读取数据
使用 MySQLi:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
// 查询数据
$sql = "SELECT id, name, age FROM myTable";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "
";
}
} else {
echo "0 结果";
}
// 关闭连接
$conn->close();
?>
使用 PDO:
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
// 创建连接
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 查询数据
$sql = "SELECT id, name, age FROM myTable";
$result = $conn->query($sql);
// 设置结果集为关联数组
$result->setFetchMode(PDO::FETCH_ASSOC);
foreach($result as $row) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "
";
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
// 关闭连接
$conn = null;
?>
七、PHP 数据库 ODBC
ODBC 是一种应用程序编程接口(Application Programming Interface,API),使我们有能力连接到某个数据源(比如一个 MS Access 数据库)。
安装 ODBC 扩展:
在 PHP 中使用 ODBC 扩展,首先需要确保已经安装了相应的扩展。在 PHP 7.x 及更高版本中,ODBC 扩展已经包含在 PHP 核心中,无需额外安装。
创建 ODBC 连接:
通过一个 ODBC 连接,您可以连接到您的网络中的任何计算机上的任何数据库,只要 ODBC 连接是可用的。
这是创建到达 MS Access 数据库的 ODBC 连接的方法:
- 在控制面板中打开管理工具图标。
- 双击其中的数据源(ODBC)图标。
- 选择系统 DSN 选项卡。
- 点击系统 DSN 选项卡中的添加。
- 选择Microsoft访问驱动程序。点击完成。
- 在下一个界面,点击选择来定位数据库。
- 为数据库起一个数据源名(DSN)。
- 点击确定。
连接到 ODBC
odbc_connect() 函数用于连接到 ODBC 数据源。该函数有四个参数:数据源名、用户名、密码以及可选的指针类型。
odbc_exec() 函数用于执行 SQL 语句。
下面的实例创建了到达名为 northwind 的 DSN 的连接,没有用户名和密码。然后创建并执行一条 SQL 语句:
$conn=odbc_connect('northwind','','');
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
取回记录
odbc_fetch_row() 函数用于从结果集中返回记录。如果能够返回行,则函数返回 true,否则返回 false。
该函数有两个参数:ODBC 结果标识符和可选的行号:
odbc_fetch_row($rs)
从记录中取回字段
odbc_result() 函数用于从记录中读取字段。该函数有两个参数:ODBC 结果标识符和字段编号或名称。
下面的代码行从记录中返回第一个字段的值:
$compname=odbc_result($rs,1);
关闭 ODBC 连接
odbc_close() 函数用于关闭 ODBC 连接。
odbc_close($conn);
ODBC 实例
下面的实例展示了如何首先创建一个数据库连接,接着创建一个结果集,然后在 HTML 表格中显示数据。
<html>
<body>
<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
{
exit("连接失败: " . $conn);
}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
{
exit("SQL 语句错误");
}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
$compname=odbc_result($rs,"CompanyName");
$conname=odbc_result($rs,"ContactName");
echo "<tr><td>$compname</td>";
echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
</body>
</html>
❤️结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!