kinoritech / fast-mysql
轻量级数据库类
1.0.0
2022-06-23 20:55 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();