kinoritech/fast-mysql

轻量级数据库类

1.0.0 2022-06-23 20:55 UTC

This package is auto-updated.

Last update: 2024-09-12 03:00:56 UTC


README

这个轻量级数据库类是用PHP编写的,并使用MySQLi扩展,它使用预处理语句来正确地保护你的查询,无需担心SQL注入攻击。

基于David Adams在super-fast-php-mysql-database-class的代码。

MySQLi扩展内置了你可以使用的预处理语句,这将防止SQL注入并防止你的数据库被暴露,一些开发者对于如何正确使用这些方法感到困惑,因此David创建了(我们进行了改进)这个易于使用的数据库类,它会为你完成工作。

这个数据库类适合初学者且易于实现,使用原生的MySQLi方法,你需要编写3-7行代码才能从数据库中检索数据,使用这个类,你只需要1-2行代码即可,且更容易理解。

安装

推荐的方式是通过composer

composer require kinoritech/fast-mysql

如何使用

连接到MySQL数据库

use KinoriTech\FastMysql\Connection;

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'example';

$db = new Connection($dbhost, $dbuser, $dbpass, $dbname);

从数据库中检索一条记录

$account = $db->query('SELECT * FROM accounts WHERE username = ? AND password = ?', 'test', 'test')->fetchArray();
echo $account['name'];

或者你也可以这样做

$account = $db->query('SELECT * FROM accounts WHERE username = ? AND password = ?', array('test', 'test'))->fetchArray();
echo $account['name'];

从数据库中检索多条记录

$accounts = $db->query('SELECT * FROM accounts')->fetchAll();

foreach ($accounts as $account) {
    echo $account['name'] . '<br>';
}

如果你不想将结果存储在数组中(对于大量数据很有用),你可以指定一个回调函数

$db->query('SELECT * FROM accounts')->fetchAll(function($account) {
echo $account['name'];
});

如果你需要中断循环,你可以添加

return 'break';

获取行数

$accounts = $db->query('SELECT * FROM accounts');
echo $accounts->numRows();

获取影响的行数

$insert = $db->query('INSERT INTO accounts (username,password,email,name) VALUES (?,?,?,?)', 'test', 'test', 'test@gmail.com', 'Test');
echo $insert->affectedRows();

获取查询总数

echo $db->query_count;

获取最后插入的ID

echo $db->lastInsertID();

关闭数据库

$db->close();