yhyasyrian/sydb

库通信和数据库处理

v1.5.3 2023-09-10 15:58 UTC

README

叙利亚数据库Syrian DataBase是一个简单的库,它通过连接到mysql数据库来执行数据处理,因为它将普通数据转换为sql代码。这个库是安全的,不包含sql注入漏洞。它旨在避免这些问题,这些问题可能对初学者来说有些难以避免,并且学习起来既简单又灵活。

注意

这个库只是一个实验,因为它缺乏通过其内部方法合并表的能力,所以它不能用于大型和中型项目。它仅适用于添加和删除数据,对我来说这只是个经验,我从中学到了很多。今天我不建议任何人处理它。

索引方法顺序列表:安装库 如何安装SyDb库 选择数据 从数据库获取数据 插入数据 将数据添加到数据库 更新数据 更新数据库中的数据 删除数据 从数据库中删除数据 查询SQL 执行SQL代码 连接数据库 新建数据库连接 关闭连接数据库 关闭现有的连接 表属性 错误 错误异常 一些未来

安装库

您可以使用composer安装库。您可以通过将以下行添加到composer.json文件来使用Composer安装库

{
    "require": {
        "yhyasyrian/sydb": "^1.5"
    }
}

或者运行

composer require yhyasyrian/sydb

选择

在"Select"类中,有几个使用方法,即:select_sqlselectfetch_allfetch

Used to fetch data

select_sql

使用select_sql来显示一个集成的sql代码,它接受三个参数:$table表示表,类型为String $where表示搜索位置,类型为Array 默认值="[]",语法:列名 => 里面的值 $etcWhere 意在添加搜索属性,方法将在未来的更新中开发,类型为String 默认值=""。返回Sql代码,类型为String

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$sql = $SyDb->select_sql('memers',['type'=>'admin']);
echo $sql; // SELECT * FROM `memers` WHERE `type`='admin';
// Example $_SESSION['user'] = 'Yhya'
$sql = $SyDb->select_sql('memers',['type'=>'admin','user'=>$_SESSION['user']]);
echo $sql; // SELECT * FROM `memers` WHERE `type`='admin' AND `user`='Yhya';
// Exaple $message = 'Heelo \' Yhya" I am Hak';
$sql = $SyDb->select_sql('message',['message'=>"Heelo ' Yhya\" I am Hak"]);
echo $sql; // SELECT * FROM `message` WHERE `message`='Heelo &#39; Yhya&#34; I am Hak';
?>

选择

使用select来运行sql代码,它接受三个参数:$table表示表,类型为String $where表示搜索位置,类型为Array 默认值="[]",语法:列名 => 里面的值 $etcWhere 意在添加搜索属性,方法将在未来的更新中开发,类型为String 默认值=""。返回mysqli_result对象。

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$select = $SyDb->select('memers',['type'=>'band']);
$select->num_rows; // Count rows ; int|string @link https://php.ac.cn/manual/en/mysqli-result.num-rows.php
// And You Can View All Data
while ($row = $SyDb->fetch($select) /*
    * It is shortcut for function mysqli_fetch_assoc
*/) {
    print_r($row); // For print this data
}
?>

fetch_all

使用fetch_all来选择所有数据,它接受三个参数:$table表示表,类型为String $where表示搜索位置,类型为Array 默认值="[]",语法:列名 => 里面的值 $etcWhere 意在添加搜索属性,方法将在未来的更新中开发,类型为String 默认值=""。返回数据行,类型为Array

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$fetch_all = $SyDb->fetch_all('memers',['type'=>'active']);
print_r($fetch_all); /* * Output is :
    Array(
         Array(
            [id] => 1,
            [type] => "active",
            [name] => "Yhya"
        ),
        Array(
            [id] => 2,
            [type] => "active",
            [name] => "Saied"
        ),
    )
*/
?>

fetch

使用fetch选择接受三个参数的第一个数据:$table表示表,类型为String $where表示搜索位置,类型为Array 默认值为"[]",语法:列名 => 列中的值 $etcWhere。打算在未来更新中为它开发方法,类型为String 默认值为""。返回数据行,类型为Array

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$fetch = $SyDb->fetch('memers',['type'=>'active']);
print_r($fetch); /* * Output is :
        Array(
        [id] => 1,
        [type] => "active",
        [name] => "Yhya"
    )
*/
?>

插入

在"Insert"类中,有几种使用方法,即:insert_sqlinsert

Used to insert data

insert_sql

使用insert_sql显示添加到数据库的集成sql代码,接受两个参数:$table表示表,类型为String $data表示要添加到数据库中的数据,类型为Array。语法:列名 => 列中的值。返回Sql代码,类型为String

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$sql = $SyDb->insert_sql('memers',['type'=>'admin','name'=>'Yhya']);
echo $sql; // INSERT INTO `memers` (`type`,`name`) VALUES ('admin','Yhya');
$sql = $SyDb->insert_sql('memers',['type'=>'active','name'=>'Hello I am\' Hack']);
echo $sql; // INSERT INTO `memers` (`type`,`name`) VALUES ('active','Hello I am&#39; Hack');
?>

insert

使用insert运行添加到数据库的集成sql代码,接受两个参数:$table表示表,类型为String $data表示要添加到数据库中的数据,类型为Array。语法:列名 => 列中的值。返回true,类型为Bool

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$sql = $SyDb->insert('memers',['type'=>'admin','name'=>'Yhya']); // Adding to the database is done
?>

更新

在"Update"类中,有几种使用方法,即:update_sqlupdate

Used to update data

update_sql

使用update_sql显示更新数据库数据的集成sql代码,接受三个参数:$table表示表,类型为String $where表示要更新的数据库中的数据,类型为Array。语法:列名 => 列中的值 $new表示要更新到数据库中的数据,类型为Array。语法:列名 => 列中的值。返回Sql代码,类型为String

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$sql = $SyDb->update_sql('memers',['type'=>'admin','name'=>'Yhya'],['status'=>"online"]);
echo $sql; // UPDATE `memers` SET `status`='online' WHERE `type`='admin' AND `name`='Yhya';
$sql = $SyDb->update_sql('memers',['type'=>'active','name'=>'Hello I am\' Hack'],['status'=>"ofline"]);
echo $sql; // UPDATE `memers` SET `status`='ofline' WHERE `type`='active' AND `name`='Hello I am&#39; Hack';
?>

update

使用update运行更新数据库数据的集成sql代码,接受三个参数:$table表示表,类型为String $where表示要更新的数据库中的数据,类型为Array。语法:列名 => 列中的值 $new表示要更新到数据库中的数据,类型为Array。语法:列名 => 列中的值。返回Void类型。

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->update('memers',['type'=>'admin','name'=>'Yhya'],['status'=>"online"]);
$SyDb->update('memers',['type'=>'active','name'=>'Hello I am\' Hack'],['status'=>"ofline"]);
?>

删除

在"Delete"类中,有几种使用方法,即:delete_sqldelete

Used to delte data

delete_sql

使用delete_sql显示接受三个参数的sql代码:$table表示表,类型为String $where表示从数据库中删除的位置,类型为Array。语法:列名 => 列中的值。返回Sql代码,类型为String

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$sql = $SyDb->delete_sql('memers',['type'=>'admin']);
echo $sql; // SELECT * FROM `memers` WHERE `type`='admin';
$sql = $SyDb->delete_sql('message',['message'=>"Heelo ' Yhya\" I am Hak"]);
echo $sql; // DELETE FROM `message` WHERE `message`='Heelo &#39; Yhya&#34; I am Hak';
?>

delete

使用delete运行接受三个参数的sql代码:$table表示表,类型为String $where表示从数据库中删除的位置,类型为Array。语法:列名 => 列中的值。返回Void类型。

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->delete('memers',['type'=>'admin']);
$SyDb->delete('message',['message'=>"Heelo ' Yhya\" I am Hak"]);
?>

查询

在"Query"类中,有几种使用方法,即:query

Used to run sql code

query

使用query运行接受一个参数的sql代码:$query表示sql代码,类型为混合型。返回类型为Mixed

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->query("INSERT INTO `memers` (`type`,`name`) VALUES ('active','Hello I am&#39; Hack');");
// Or
$SyDb->query(
    $SyDb->insert_sql('memers',['type'=>'active','name'=>'Hello I am\' Hack'])
);
// Or 
$SyDb->insert('memers',['type'=>'active','name'=>'Hello I am\' Hack'])
{Note}: Using the method can directly cause a sql injection-type hack.
To avoid the problem use the available methods, Example: select, update, etc ...    

连接

在"Connect"类中,有几种使用方法,即:connect

Used to connect database

connect

使用connect连接数据库,不需要参数。返回类型为Bool的true。

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database'); // Coonect DataBase simple
//  Or
$SyDb->connect();
{Note}: In PHP CLI between each connection there is an interval (Defult 15s)

关闭

在"Close"类中,有几种使用方法,即:close

Used to end connect database

close

使用end连接数据库,不需要参数。返回类型为Bool的true。

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database'); 
$SyDb->close();
$Sydb->query('SELECT * FROM `table`'); // Error beacuse not found connect, you can connect with function connect()

在"Table"类中,有几种使用方法,即:viewTableexportTableexportTables

Used to tables  a database

viewTable

使用view查看数据库中的表,不需要参数。返回所有表,类型为Array

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$tables = $SyDb->viewTable();
print_r($tables); /* * Output is:
    Array(
        [0] => Members,
        [1] => Tokens,
        [2] => Logs,
        [3] => Sitting,
        [4] => CronsJob
    )
*/
?>

exportTable

使用数据库导出表并传入三个参数:$table 表示表名,类型为 String,$dir 表示保存文件的路径,类型为 String,$bool 表示是否在文件名中添加 UNIX 时间戳,类型为 Bool。返回值为布尔类型,bool

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->exportTable('Members','.'); // you can show file Members.sql

exportTables

使用数据库导出多个表并传入两个参数:$dir 表示保存文件的路径,类型为 String,$bool 表示是否在文件名中添加 UNIX 时间戳,类型为 Bool。返回值为布尔类型,bool

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->exportTables('.'); // you can show file Members.sql

错误

在 "Error" 类中,为了对错误进行分类

Used to show errors

异常

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
try{
    $SyDb = new SyDb('localhost','root','passNoTrue','database');
} catch (\YhyaSyrian\Sql\Exception $error) {
    // The error from database
    echo $error->getMessage();
} catch (\Throwable $error) {
    // The error from your file
    echo $error->getMessage();
}

函数帮助

一些函数帮助本库的使用示例

AddWhere

该函数将数组渲染为所有连接的通用因子

示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->addWhere(['site'=>($_SERVER['SERVER_NAME'] ?? "CLI")]);
echo $SyDb->select_sql('member',['type'=>'admin']); // SELECT * FROM `member` WHERE `type`='admin' AND `site`='CLI';
echo $SyDb->insert_sql('member',['type'=>'admin','name'=>"Yhya"]); // INSERT INTO `member` (`type`,`name`,`site`) VALUES ('admin','Yhya','CLI');
echo $SyDb->delete_sql('member',['type'=>'banded']); // DELETE FROM `member` WHERE `type`='banded' AND `site`='CLI';
echo $SyDb->update_sql('member',['status'=>'ofline','name'=>"test"],['status'=>"online"]); // UPDATE `member` SET `status`='online' WHERE `status`='ofline' AND `name`='test' AND `site`='CLI';
{Advice}: It may be difficult to add the array manually if you want to change your storage format

StartColumn

如果你想根据起始 ID 或最后时间获取数据,你应该使用 StartColumn 函数,在那里你可以设置限制和偏移量示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
echo $SyDb->select_sql('member',['type'=>'admin'],$SyDb->StartColumn('id',100,0)); // SELECT * FROM `member` WHERE `status`='admin' ORDER BY id LIMIT 0,100;

EtartColumn

如果你想根据结束 ID 或新时间获取数据,你应该使用 EtartColumn 函数,在那里你可以设置限制和偏移量示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
echo $SyDb->select_sql('member',['type'=>'admin']); // SELECT * FROM `member` WHERE `status`='admin' ORDER BY id DESC LIMIT 0,100;

SetTimeConnect

如果你使用本库配合 CLI,你可以在每次连接时设置连接时间,例如:每秒连接一次,这样你就不必强制创建新的连接,因为服务器限制了连接数示例

<?php
require 'vendor/autoload.php';
use \YhyaSyrian\Sql\SyDb;
$SyDb = new SyDb('localhost','root','pass','database');
$SyDb->setTimeConnect(10);
$startTime = time();
$i = 0;
while ($startTime > (time() - 30)) {
    $SyDb->connect();
    echo $i++."-number\r";
    sleep(1);
}
// Connect 3 item

文档结束,如果你想进行任何项目,可以通过以下邮箱联系我们:[yhya.syrian@gmail.com](mailto:yhya.syrian@gmail.com)