$all = array('one' =>(
[0] => value,
[1] => value1,
[2] => value2,
),
'two' => (
[0] => value3,
[1] => value4,
[2] => value5,
).
'three' => (
[0] => value5,
[1] => value7,
[2] => value8,
),
'four' => (
[0] => value9,
[1] => value10,
[2] => value11,
));
$sql = 'INSERT INTO myarr ( one, two, three, four)'
. 'VALUES (?, ?, ?, ?)';
//Нашёл что в pdo массив можно записать через цикл foreach и транзакцию.
$stmt = $db->prepare($sql);
$db->beginTransaction();
foreach ($all as $i =>$one){
$stmt->execute([$one, $all['two'][$i],$all['three'][$i],$all['four'][$i]]);
}
$db->commit();
foreach ($all as $row){
$stmt->execute($row);
}
abstract class BaseORM {
protected $table;
protected $db;
public function __construct($db) {
$this->db = $db;
}
public function getById($id) {
$stmt = $this->db->prepare("SELECT * FROM `$this->table`" WHERE id=?);
$stmt->execute([$id]);
return $stmt->fetch();
}
public function getAll() {
return $this->db->query("SELECT * FROM `$this->table`");
}
}
class SliderDB extends BaseORM {
protected $table = 'slider';
}
$slider = new SliderDB($db);
$allSliders = $slider->getAll();
у меня интернет магазин - и там у меня есть список лучших товаров - отдельный список магазинов и отдельный список лучших предложений - и если мне писать каждый метод с каждым именем таблици - мне сказали что я нарушаю правило" не повторйся"! и думал я как же мне быть что бы в переменную таблица записывалась динамично и что бы не было массу методов как то так.
function getTableData($table) {
$list = ['best_offers', 'shops', 'best_products'];
if (!in_array($table, $list)) {
throw new InvalidArgumentException('Table name not found');
}
return $this->db->row('SELECT * FROM `$table`');
}
$data = getTableData('shops');
$sth = $dbh->prepare('SELECT * FROM table WHERE col = :col');
$sth->execute(['col' => $col]);