yhyasyrian/ sydb
库通信和数据库处理
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-18 17:53:06 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_sql、select、fetch_all、fetch
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 ' Yhya" 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_sql、insert
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' 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_sql、update
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' 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_sql、delete
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 ' Yhya" 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' 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"类中,有几种使用方法,即:viewTable、exportTable、exportTables
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)