bauhu / db
0.0.4
2022-08-17 11:45 UTC
README
这个轻量级数据库类是用PHP编写的,并使用MySQLi扩展,它使用预处理语句来正确地保护您的查询,无需担心SQL注入攻击。
MySQLi扩展内置了您可以使用的预处理语句,这可以防止SQL注入并防止您的数据库暴露。一些开发者对如何正确使用这些方法感到困惑,因此我创建了这个易于使用的数据库类,它会为您完成工作。
这个数据库类适合初学者且易于实现,使用本机MySQLi方法,您需要编写3-7行代码才能从数据库中检索数据,而使用这个类,您只需1-2行代码即可完成,并且更容易理解。
安装
该项目使用composer。
$ composer require bauhu/db
使用方法
连接到MySQL数据库
<?php use db\db; $db = new db($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();
或者
$numberRows = $db->query('SELECT * FROM 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();
致谢
感谢David Adams