在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执行数据库搜索。
数据库搜索
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'] . "
"; } } 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调用存储过程来插入新用户。
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_username
、your_password
和your_database
替换为您的实际数据库连接信息。