Ошибка Fatal error: Uncaught ArgumentCountError: Too few arguments to function =при добавление пользователя
При добавлении пользователя отображается ошибка
( ! ) Fatal error: Uncaught ArgumentCountError: Too few arguments to function MyForm\QueryBuilder::upLoadImage(), 0 passed in /var/www/form/src/QueryBuilder.php on line 43 and exactly 1 expected in /var/www/form/src/QueryBuilder.php on line 19
( ! ) ArgumentCountError: Too few arguments to function MyForm\QueryBuilder::upLoadImage(), 0 passed in /var/www/form/src/QueryBuilder.php on line 43 and exactly 1 expected in /var/www/form/src/QueryBuilder.php on line 19
QueryBuilder.php
?php
namespace MyForm;
use \PDO;
use \PDOException;
class QueryBuilder
{
public $pdo;
function __construct()
{
//$this->pdo =new PDO($this->$dsn, $this->$db_user, $this->$db_pass);
$this->pdo = new PDO("pgsql:host=192.168.100.219; dbname=default", "default", "secret");
}
//Список задач
function upLoadImage ($image) {
$extension = pathinfo($image['name'], PATHINFO_EXTENSION);
$filename = uniqid() . "." . $extension;
move_uploaded_file($image['tmp_name'], "uploads/" . $filename);
return $filename;
print_r($filename);
}
//Сохранение новой задачи
function addTask ($firstName, $lastName, $thrName, $email, $address, $kurs, $faculty, $saveinfo, $whois, $zip) {
$statement = $this->pdo->prepare("INSERT INTO users (firstname, lastname, thrname, email, address, kurs, faculty, saveinfo, whois, zip, image)
VALUES (:firstName, :lastName, :thrName, :email, :address, :kurs, :faculty, :saveinfo, :whois, :zip, :image)");
$statement->bindValue(':firstName', $firstName, PDO::PARAM_STR);
$statement->bindValue(':lastName', $lastName, PDO::PARAM_STR);
$statement->bindValue(':thrName', $thrName, PDO::PARAM_STR);
$statement->bindValue(':email', $email, PDO::PARAM_STR);
$statement->bindValue(':address', $address, PDO::PARAM_STR);
$statement->bindValue(':kurs', $kurs, PDO::PARAM_INT );
$statement->bindValue(':faculty', $faculty,PDO::PARAM_INT );
$statement->bindValue(':saveinfo',$saveinfo,PDO::PARAM_INT );
$statement->bindValue(':whois', $whois,PDO::PARAM_INT );
$statement->bindValue(':zip', $zip, PDO::PARAM_STR);
$statement->bindValue(':image', $this->upLoadImage());
$statement->execute(); //true || false
var_dump($this->pdo->lastInsertId('users_id_seq'));
}
add.php
<?php
require_once 'vendor/autoload.php';
use MyForm\QueryBuilder;
$db = new QueryBuilder();
$db->upLoadImage($_FILES['image']);
$db->addTask($_POST['firstName'], $_POST['lastName'],$_POST['thrName'],$_POST['email'],$_POST['address'],
$_POST['kurs'], $_POST['faculty'],$_POST['saveinfo'],$_POST['whois'], $_POST['zip']);
Подскажите причину ошибки
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
В методе addTask вызывается метод upLoadImage, который требует на вход один аргумент, а у вас в методе ничего не подаётся. Ошибка на это указывает