jonathanbak/mysqlilib

简单的MySQLi库

v1.3.6 2023-10-20 02:02 UTC

This package is not auto-updated.

Last update: 2024-09-20 07:10:01 UTC


README

这是一个轻量级、简单的MySQL库,可以轻松应用于实际工作中。

试用后如有问题,请发邮件。随时欢迎提问。

支持php5.6 ~ php8.2。

安装

$ composer require jonathanbak/mysqlilib

$ composer install

测试

请将以下内容中的MySQL服务器信息替换为您的MySQL服务器信息,并存入到phpunit.xml.dist中

<php>
    <var name="DB_HOST" value="localhost" />
    <var name="DB_USER" value="test" />
    <var name="DB_PASSWD" value="test1234" />
    <var name="DB_NAME" value="db_test" />
    <var name="DB_PORT" value="3306" />
</php>

运行phpunit进行测试。

$ vendor/bin/phpunit

用法

简单的数据库连接及SELECT查询

$DB = new MySQLiLib($host, $user, $password, $dbName);
$query = "SELECT * FROM test";
$row = $DB->fetch($query);
var_dump($row);

SELECT

从test表中选择id = 222的单一数据行

$query = "SELECT * FROM test WHERE id = ?";
$row = $DB->fetch($query, array(222));
var_dump($row);

从test表中选择id = 11的多条数据行

$query = "SELECT * FROM test WHERE id = ?";
$rows = array();
while($row = $DB->fetch($query, array(11))){
    $rows[] = $row;
}
var_dump($rows);

从test表中选择name LIKE '테스트%'的多条数据行

$query = "SELECT * FROM test WHERE name LIKE '??%'";
$rows = array();
while($row = $DB->fetch($query, array('테스트'))){
    $rows[] = $row;
}
var_dump($rows);

INSERT, UPDATE, DELETE

$query = "INSERT INTO test SET id = ?, reg_date = ?";
$result = $DB->query($query, array(33, date("Y-m-d H:i:s")));
var_dump($result);

$query = "DELETE FROM test SET id = ?";
$result = $DB->query($query, array(33));
var_dump($result);

异常

当test表中的id = 33的数据已经存在时,将发生Duplicate entry '33' for key 'PRIMARY'错误

try{
    $query = "INSERT INTO test SET id = ?, reg_date = ?";
    $result = $DB->query($query, array(33, date("Y-m-d H:i:s")));
}catch(\MySQLiLib\Exception $e){
    //print error message "Duplicate entry '33' for key 'PRIMARY'"
    var_dump($e->getMessage());
}

预处理语句查询

$query = "INSERT INTO test SET id = ?, reg_date = ?";
$DB->bind_param('i');
$result = $DB->query($query, array(33, date("Y-m-d H:i:s")));
var_dump($result);

$query = "DELETE FROM test SET id = ?";
$DB->bind_param('i');
$result = $DB->query($query, array(33));
var_dump($result);