温馨提示×

php数据库搜索与存储过程

PHP
小樊
81
2024-12-24 06:00:12
栏目: 云计算

在PHP中,我们可以使用PDO(PHP Data Objects)库来执行数据库搜索和存储过程。以下是使用PDO执行数据库搜索和存储过程的示例。

首先,创建一个名为users的数据库表:

CREATE TABLE users (
  id INT AUTO_INCREMENT PRIMARY KEY,
  username VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

接下来,我们将展示如何使用PDO执行数据库搜索。

数据库搜索

<?php
// 数据库连接信息
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

try {
  // 创建PDO连接
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  // 搜索关键词
  $keyword = "John";

  // 准备SQL语句
  $stmt = $conn->prepare("SELECT * FROM users WHERE username LIKE :keyword");
  $stmt->bindParam(':keyword', $keyword, PDO::PARAM_STR);

  // 执行查询
  $stmt->execute();

  // 获取结果
  $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

  // 输出结果
  foreach ($results as $row) {
    echo "ID: " . $row['id'] . " - Username: " . $row['username'] . " - Email: " . $row['email'] . "<br>";
  }
} catch (PDOException $e) {
  echo "Error: " . $e->getMessage();
}

// 关闭连接
$conn = null;
?>

存储过程

接下来,我们将创建一个名为insert_user的存储过程,用于向users表中插入新用户。

DELIMITER //
CREATE PROCEDURE insert_user(IN p_username VARCHAR(255), IN p_email VARCHAR(255))
BEGIN
  INSERT INTO users (username, email) VALUES (p_username, p_email);
END //
DELIMITER ;

现在,我们可以使用PDO调用存储过程来插入新用户。

<?php
// 数据库连接信息
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

try {
  // 创建PDO连接
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  // 插入新用户
  $username = "Jane";
  $email = "jane@example.com";

  // 准备调用存储过程
  $stmt = $conn->prepare("CALL insert_user(:username, :email)");
  $stmt->bindParam(':username', $username, PDO::PARAM_STR);
  $stmt->bindParam(':email', $email, PDO::PARAM_STR);

  // 执行存储过程
  $stmt->execute();

  echo "New user inserted successfully!";
} catch (PDOException $e) {
  echo "Error: " . $e->getMessage();
}

// 关闭连接
$conn = null;
?>

以上示例展示了如何使用PDO在PHP中执行数据库搜索和存储过程。请确保将your_usernameyour_passwordyour_database替换为您的实际数据库连接信息。

0