bauhu/db

快速 Mysql

0.0.4 2022-08-17 11:45 UTC

This package is auto-updated.

Last update: 2024-09-17 16:16:22 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