更新,删除,插入操作的链式调用
数据库操作的链式调用
插入:
//insert方法
public function insert()
{
$sql = 'INSERT ' . $this->table. ' SET ';
$sql .= $this->opts['value'] ?? null;
echo $sql;
$stmt = $this->db->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
//value方法
public function value(array $value=[]){
$str = '';
if (count($value) > 0) {
foreach ($value as $k => $v) {
$str .= $k . "='" . $v . "',";
}
//去掉最后一个","
$str = substr($str, 0, strlen($str) - 1);
$this->opts['value'] = " $str";
return $this;
}
更新:
//update方法
public function update()
{
$sql = 'UPDATE ' . $this->table. ' SET ';
$sql .= $this->opts['value'] ?? null;
$sql .= $this->opts['where'] ?? null;
echo $sql;
$stmt = $this->db->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
删除:
总结:
//delete方法
public function delete()
{
$sql = 'DELETE FROM ' . $this->table;
$sql .= $this->opts['where'] ?? null;
echo $sql;
$stmt = $this->db->prepare($sql);
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
这是学习框架底层逻辑最重要的内容之一,也是比较难理解的,通过简单的sql语句拼接实现更新、删除、插入操作,还没有使用sql预处理防注入,有时间再出来吧!
【感谢龙石为本站提供数据共享交换平台 http://www.longshidata.com/pages/exchange.html】