PHP Fatal error: Declaration of ...MySQLServer::insert() must be compatible with ...Server::insert() in /home/lfLvpx/prog.php on line 102
Почему возникает эта ошибка, и как ее поправить?
abstract class Server
{
public function __construct($token)
{
if ($token !== $_POST['crm_token']) {
http_response_code(401);
} else {
$this->accept();
}
}
abstract protected function insert();
...
}
class MySQLServer extends Server
{
protected function insert(mysqli $link, $table, array $required)
{
$fields = "`".implode("`, `", $required)."`";
$fields_num = count( $required );
$questions = str_repeat( "?,", $fields_num - 1 ) . "?";
$query = "INSERT INTO `$table` ($fields) VALUES ($questions)";
$data = [];
foreach( $required as $field ){
$data[] = $_POST[$field];
}
$stmt = mysqli_prepare($link, $query );
$types = str_repeat('s', $fields_num );
$stmt->bind_param( $types, ...$data );
$stmt->execute();
}
}
Могу предложить такой вариант для PHP 5.6+
<?php
abstract class Server
{
public function __construct($token)
{
//...
}
abstract public function insert(...$params);
}
class MySQLServer extends Server
{
public function insert(...$params)
{
print_r($params);
}
}
$server = new MySQLServer();
$server->insert(1,2,3);
/**
Вывод в консоли:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
**/
Правда, я не вижу никакой пользы в ООП, если в insert необходимо передавать объект подключения к бд. Вся суть ООП раскроется, если объект будет хранить объекты подключения внутри себя, а наружу отдавать стандартизированные методы. Для реализации чего-то кроме MySQLServer понадобится PDO.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Приветствую! Возникла проблема в том чтобы сделать поле в таблицы, которое будет генерировать уникальное значениеНужно оно для создания...