jmajors/jaysqlwrap

SQL语句的基本PHP包装器

0.0.3 2016-04-26 02:18 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:42:17 UTC


README

一个简单的PHP类,用于创建和执行基本的SQL预处理语句作为对象方法。这提供了一种与数据库交互的同时防止SQL注入的简单方法。

使用Composer安装

composer require jmajors/jaysqlwrap

有关如何设置Composer的详细信息,请参阅https://getcomposer.org.cn/download/

使用方法

将composer的自动加载器添加到您的项目中

require __DIR__ . '/vendor/autoload.php';

包装器在实例化时会使用应用程序的.env文件中的数据库信息建立数据库连接。如果您没有.env文件,您需要创建一个。请参阅https://github.com/vlucas/phpdotenv。请注意,此功能已包含在包装器中,您只需创建.env文件并在应用程序中加载它即可

$dotenv = new Dotenv\Dotenv(__DIR__);
$dotenv->load();

创建Jaywrap实例

$db = new Jaywrap\Jaywrap();

INSERT(插入)

插入方法有两个参数:作为字符串的表名,以及要插入的数据数组。数据数组的键需要与表的列名匹配。例如

$data = array('username' => 'jasonmajors', 'password' => 'somehashedpassword', 'age' => 28, 'language' => 'php');
$success = $db->insert('users', $data);

SELECT(选择)

选择方法有两个参数:作为字符串的表名,以及可选的WHERE条件数组。

选择表中的所有项目

$results = $db->select('sometable');

结果将作为数组返回。

print_r($results);

/*
 *	Array ( 
 *		[0] => Array ( 
 *				[columnX] => someValue 
 *				[0] => someValue 
 * 				[columnY] => someOtherValue
 *				[1] => someOtherValue
 *		) 
 *		[1] => Array (
 *			 	[columnX] => someOtherValueTwo 
 * 			 	[0] => someOtherValueTwo
 *			 	[columnY] => someOtherValueThree
 *			 	[1] => someOtherValueThree
 * 		) 
 *	)
 */

带有条件的SELECT

$conditions = array('username' => 'jasonmajors', 'language' => 'php');
$results = $db->select('users', $conditions);

上述操作将执行以下预处理语句

SELECT * FROM table WHERE username = 'jasonmajors' AND language = 'php';

您还可以在条件数组中传递数组作为值

$conditions = array('username' => array('jasonmajors', 'johndoe', 'janedoe'));
$results = $db->select('table', $conditions);

上述操作将执行

SELECT * FROM table WHERE username IN ('jasonmajors', 'johndoe', 'janedoe');

UPDATE(更新)

更新方法有三个参数:作为字符串的表名,更新数据数组,以及WHERE条件数组。

$updates = array('language' => 'Python');
$conditions = array('username' => 'jasonmajors');
$success = $db->update('users', $updates, $conditions);

DELETE(删除)

删除方法有两个参数:作为字符串的表名,以及WHERE条件数组。

$delete = array('username' => 'jasonmajors');
$success = $db->delete('users', $updates, $conditions);