PHP数据库

🐌博主主页:🐌​倔强的大蜗牛🐌​

📚专栏分类:PHP

📚参考教程:菜鸟\编程网
❤️感谢大家点赞👍收藏⭐评论✍️

目录

 一、PHP 连接 MySQL

二、PHP MySQL 创建数据库

 三、PHP 创建 MySQL 表

四、PHP MySQL 插入数据

五、PHP MySQL 预处理语句

六、PHP MySQL 读取数据

七、PHP 数据库 ODBC


一、PHP 连接 MySQL

PHP 数据库是指在 PHP 脚本中与数据库进行交互的过程。PHP 支持多种数据库,如 MySQL、PostgreSQL、SQLite 等。在 PHP 中,我们可以使用不同的扩展和函数来连接和操作数据库。以下是一些常用的 PHP 数据库扩展:

  1. MySQLi:MySQL 改进扩展,用于连接 MySQL 数据库。
  2. PDO:PHP 数据对象,提供了一个轻量级、一致的接口来处理不同类型的数据库。
  3. PostgreSQL:用于连接 PostgreSQL 数据库。
  4. 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 连接的方法:

  1. 在控制面板中打开管理工具图标。
  2. 双击其中的数据源(ODBC)图标。
  3. 选择系统 DSN 选项卡。
  4. 点击系统 DSN 选项卡中的添加
  5. 选择Microsoft访问驱动程序。点击完成
  6. 在下一个界面,点击选择来定位数据库。
  7. 为数据库起一个数据源名(DSN)
  8. 点击确定

连接到 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>

❤️结语: 

本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!

相关推荐

  1. PHP数据库

    2024-05-14 03:00:05       25 阅读
  2. PHP MySQL 创建数据库

    2024-05-14 03:00:05       28 阅读
  3. PHP基础 - 数据类型

    2024-05-14 03:00:05       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-14 03:00:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-14 03:00:05       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-14 03:00:05       87 阅读
  4. Python语言-面向对象

    2024-05-14 03:00:05       96 阅读

热门阅读

  1. Redis中,hash的使用

    2024-05-14 03:00:05       33 阅读
  2. 算法学习笔记(匈牙利算法)

    2024-05-14 03:00:05       40 阅读
  3. LabVIEW电机测试系统

    2024-05-14 03:00:05       38 阅读
  4. mysql的导入与导出

    2024-05-14 03:00:05       27 阅读
  5. google hack常用命令举例

    2024-05-14 03:00:05       36 阅读
  6. leetcode刷题

    2024-05-14 03:00:05       40 阅读
  7. 初识面向对象

    2024-05-14 03:00:05       49 阅读
  8. Docker安装Mysql后无法连接排查过程

    2024-05-14 03:00:05       35 阅读