if ($_POST) {
if (filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) && $_POST['author'] && $_POST['message']) {
$author = str_replace("\r\n", "", $_POST['author']);
$email = str_replace("\r\n", "", $_POST['email']);
$msg = $_POST['message'];
$time = (int)(microtime(true) * 1000000);
file_put_contents("messages/$time.txt", "$author\n$email\n$msg");
header("Location:".$_SERVER['REQUEST_URI']);
} else {
echo 'Error while adding your message.';
}
}
postMessages();
?>
<form action="index.php" method="post">
<p><input type="text" name="author" required /></p>
<p><input type="text" name="email" required /></p>
<p><textarea name="message" required></textarea></p>
<p><input type="submit" /></p>
</form>
$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]);