Added invisible for products.
This commit is contained in:
@@ -38,22 +38,41 @@ class Database
|
||||
public function query(string $sql, array $params = []): array
|
||||
{
|
||||
$stmt = $this->connection->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$this->bindParams($stmt, $params);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll();
|
||||
}
|
||||
|
||||
public function queryOne(string $sql, array $params = []): ?array
|
||||
{
|
||||
$stmt = $this->connection->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$this->bindParams($stmt, $params);
|
||||
$stmt->execute();
|
||||
$result = $stmt->fetch();
|
||||
return $result ?: null;
|
||||
}
|
||||
|
||||
private function bindParams(\PDOStatement $stmt, array $params): void
|
||||
{
|
||||
foreach ($params as $index => $param) {
|
||||
$paramNum = $index + 1;
|
||||
if (is_bool($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_BOOL);
|
||||
} elseif (is_int($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_INT);
|
||||
} elseif (is_null($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_NULL);
|
||||
} else {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_STR);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function execute(string $sql, array $params = []): bool
|
||||
{
|
||||
$stmt = $this->connection->prepare($sql);
|
||||
return $stmt->execute($params);
|
||||
$this->bindParams($stmt, $params);
|
||||
return $stmt->execute();
|
||||
}
|
||||
|
||||
public function lastInsertId(): string
|
||||
|
||||
@@ -75,7 +75,23 @@ abstract class Model
|
||||
);
|
||||
|
||||
$stmt = $this->db->getConnection()->prepare($sql);
|
||||
$stmt->execute(array_values($data));
|
||||
|
||||
// Правильно биндим параметры с учетом типов
|
||||
$params = array_values($data);
|
||||
foreach ($params as $index => $param) {
|
||||
$paramNum = $index + 1;
|
||||
if (is_bool($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_BOOL);
|
||||
} elseif (is_int($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_INT);
|
||||
} elseif (is_null($param)) {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_NULL);
|
||||
} else {
|
||||
$stmt->bindValue($paramNum, $param, \PDO::PARAM_STR);
|
||||
}
|
||||
}
|
||||
|
||||
$stmt->execute();
|
||||
|
||||
return (int) $stmt->fetchColumn();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user