carloscarucce / pdo-crud-functions
提供使用PDO进行常见任务的功能
v1.0
2022-02-09 20:22 UTC
Requires
- php: >=7.1
- ext-pdo: *
README
提供使用PDO进行常见任务的功能
要求
- PHP 7.1+
- PDO扩展已安装并启用
安装
使用composer
composer require carloscarucce/pdo-crud-functions
手动
- 从仓库下载代码
- 将文件移动到您的项目文件夹
- 在需要使用该函数时将其包含在您的脚本中(例如,include 'path/to/project/pdo_insert_row.php')
示例
首先,您必须使用PDO连接到您的数据库。
<?php $pdo = new PDO('mysql:host=127.0.0.1;dbname=my_database', $username, $password);
我将提供一些链接以获取更多详细信息
- (官方文档) https://php.ac.cn/manual/en/class.pdo.php
- (实用教程) https://w3schools.org.cn/php/php_mysql_connect.asp
- (视频教程) https://youtu.be/yWJFbPT3TC0
插入数据
<?php $table = 'users'; $data = [ 'name' => 'John Doe', 'email' => 'johndoe@example.com', 'active' => 1 ]; //INSERT INTO users (name, email, active) VALUES ('John Doe', 'johndoe@example.com', '1') $userId = pdo_insert_row($pdo, $table, $data); if (!is_null($userId)) { //row inserted } else { //error on inserting row }
更新数据
<?php $id = 123; $table = 'users'; $data = [ 'name' => 'John D.', 'active' => 1 ]; //UPDATE users SET name='John D.', active='1' WHERE id='123' $updated = pdo_update_row($pdo, $table, $data, $id); if ($updated) { //row updated } else { //row not updated }
删除行
<?php $id = 123; $table = 'users'; //DELETE FROM users WHERE id='123' $deleted = pdo_delete_row($pdo, $table, $id); if ($deleted) { //row deleted } else { //row not deleted }
选择数据
传统方式
<?php $query = 'SELECT * FROM users WHERE active=:active' $params = [':active' => 1]; $result = pdo_select_query($pdo, $query, $params); echo '<ul>'; while ($row = $result->fetch(PDO::FETCH_ASSOC)) { echo '<li>', $row['name'], ' - ', $row['active'], '</li>'; } echo '</ul>'; echo 'Results count: ', $result->rowCount();
使用回调
<?php $query = 'SELECT * FROM users WHERE active=:active' $params = [':active' => 1]; $renderLineFn = function($row) { echo '<li>', $row['name'], ' - ', $row['active'], '</li>'; }; echo '<ul>'; pdo_select_query($pdo, $query, $params, $renderLineFn); echo '</ul>'; echo 'Results count: ', $result->rowCount();
两种方法都会产生相同的结果
<ul> <li>John D. - 1</li> <li>Mr. Brown - 1</li> <li>Mrs. America - 0</li> </ul>