carloscarucce/pdo-crud-functions

提供使用PDO进行常见任务的功能

v1.0 2022-02-09 20:22 UTC

This package is auto-updated.

Last update: 2024-09-10 02:05:51 UTC


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);

我将提供一些链接以获取更多详细信息

插入数据

<?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>