下面是关于“php实现Mysql简易操作类”的攻略,包括实现过程和两个示例说明:
实现Mysql简易操作类
1. 创建数据库连接类
创建一个名为 "DataBase.class.php" 的新文件。在该文件中编写一个名为 "DataBase" 的类。
class DataBase
{
private $link; //连接变量
public function __construct($host, $user, $password, $database)
{
if (!$this->link = mysqli_connect($host, $user, $password, $database)) {
throw new Exception('无法连接到数据库!');
}
mysqli_set_charset($this->link, 'utf8');
}
}
2. 增加数据插入方法
新增一个 "insert" 子方法,接受三个参数,表名 "table_name"、插入内容数组 "data" 和插入条件数组 "condition"。
class DataBase
{
// ...
public function insert($table_name, $data, $condition = null)
{
if (count($data) === 0) {
throw new Exception('插入内容不能为空!');
}
$fields = array_keys($data);
$values = array_values($data);
$sql = 'INSERT INTO '. $table_name .' ('. implode(',', $fields) .') VALUES ("'. implode('","', $values) .'")';
if (is_array($condition)) {
$sql .= ' WHERE '. key($condition) .'="'. current($condition) .'"';
}
if (mysqli_query($this->link, $sql)) {
return mysqli_insert_id($this->link);
}
throw new Exception(mysqli_error($this->link));
}
}
3. 增加数据查询方法
新增一个 "select" 子方法,接受两个参数,表名 "table_name" 和查询条件数组 "condition"。
class DataBase
{
// ...
public function select($table_name, $condition = null)
{
$sql = 'SELECT * FROM '. $table_name;
if (is_array($condition)) {
$sql .= ' WHERE '. key($condition) .'="'. current($condition) .'"';
}
$result = mysqli_query($this->link, $sql);
if (!$result) {
throw new Exception(mysqli_error($this->link));
}
$rows = array();
while ($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
return $rows;
}
}
4. 增加数据更新方法
新增一个 "update" 子方法,接受三个参数,表名 "table_name"、更新内容数组 "data" 和更新条件数组 "condition"。
class DataBase
{
// ...
public function update($table_name, $data, $condition)
{
if (count($data) === 0) {
throw new Exception('更新内容不能为空!');
}
$key_value_pairs = array();
foreach ($data as $key => $value) {
$key_value_pairs[] = $key .'="'. $value .'"';
}
$sql = 'UPDATE '. $table_name .' SET '. implode(',', $key_value_pairs) .' WHERE '. key($condition) .'="'. current($condition) .'"';
if (mysqli_query($this->link, $sql)) {
return true;
}
throw new Exception(mysqli_error($this->link));
}
}
5. 增加数据删除方法
新增一个 "delete" 子方法,接受两个参数,表名 "table_name" 和删除条件数组 "condition"。
class DataBase
{
// ...
public function delete($table_name, $condition)
{
$sql = 'DELETE FROM '. $table_name .' WHERE '. key($condition) .'="'. current($condition) .'"';
if (mysqli_query($this->link, $sql)) {
return true;
}
throw new Exception(mysqli_error($this->link));
}
}
两个示例说明
示例1:插入数据和查询数据
require_once('DataBase.class.php');
// 连接数据库
$db = new DataBase('localhost', 'root', 'password', 'test_db');
// 插入数据
$data = array(
'name' => '张三',
'age' => '20'
);
$insert_id = $db->insert('users', $data);
echo '已插入ID为 '. $insert_id .' 的新数据。'."\n";
// 查询数据
$users = $db->select('users', array('id' => $insert_id));
if (count($users) > 0) {
echo '查询结果:'."\n";
print_r($users);
} else {
echo '未查询到相关数据。'."\n";
}
示例2:更新数据和删除数据
require_once('DataBase.class.php');
// 连接数据库
$db = new DataBase('localhost', 'root', 'password', 'test_db');
// 更新数据
$data = array(
'name' => '李四',
'age' => '25'
);
$is_updated = $db->update('users', $data, array('id' => 1));
if ($is_updated) {
echo 'ID为1的数据已更新。'."\n";
} else {
echo '数据未更新。'."\n";
}
// 删除数据
$is_deleted = $db->delete('users', array('id' => 2));
if ($is_deleted) {
echo 'ID为2的数据已删除。'."\n";
} else {
echo '数据未删除。'."\n";
}
以上是“php实现Mysql简易操作类”的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现Mysql简易操作类 - Python技术站