سلام و احترام
من در حال توسعه پروژهای هستم که برای تمرین خودم تعریف کردم. الان رسیدم به بخش مدل (Model) که تو این قسمت منو اسیر کرده!
مشکل اینکه، همه چی درسته ولی داده توی دیتابیس نمیشینه، کوئری و .. همه چیو بررسی کردم ولی باز کار نمیکنه. اگه امکانش هست کدهای پایینو بررسی کنید و ببینید مشکل چیه؟
<?php
namespace Bootstrap;
use PDO as PDOAlias;
abstract class Model
{
protected $dbh;
protected $stmt;
protected $table;
protected $pk = 'id';
protected $order_by = false;
public function __construct()
{
$this->dbh = new PDOAlias("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . "", DB_USER, DB_PASS);
}
public function create($data)
{
$result = $this->getKeysAndValues($data, 'create');
$stmt = $this->dbh->prepare($result['sql']);
$stmt->execute($result['execute']);
return $this->dbh->lastInsertId();
}
protected function getKeysAndValues($arr, $type = null)
{
$result = [];
$execute = [];
$sql = '';
$sets = '';
$keys = '';
$i = 0;
// extraction Keys
foreach ($arr as $k => $v) {
$execute += ["$k" => $v];
if (count($arr) - 1 == $i) {
$keys .= ":$k";
$sets .= "$k";
break;
}
$keys .= ":$k, ";
$sets .= "$k, ";
$i++;
}
$result += ["execute" => $execute];
if ($type == 'create') {
$sql = "INSERT INTO {$this->table} ({$sets}) VALUES ($keys)";
$result += ["sql" => $sql];
return $result;
}
}
}
متد create در اصل کار insert به دیتابیس رو انجام میده