Les_Alterman
@Les_Alterman
Web-developer

Почему возникает ошибка при передаче?

Имеется 2 таблицы
users
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| UserID | int(11) | NO | PRI | NULL | auto_increment |
| Password | varchar(20) | NO | | | |
| Username | varchar(25) | NO | | | |
| Email | varchar(60) | NO | | | |
+----------+-------------+------+-----+---------+----------------+

messages

+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| message | varchar(20) | NO | | | |
| date | varchar(25) | NO | | | |
| user_id | varchar(60) | NO |PRI | | |
+----------+-------------+------+-----+---------+----------------+
$query = $database->prepare("INSERT INTO messages(message,date,id_user) VALUES(?, ?, ?)");
    $date = date("Y:m:d");
    $query->bind_param('ssi',$message,$date,170);
    if(!$query->execute()) echo $query->error;
    return true;


При выполнении данного фрагмента кода php выдает ошибку

Fatal error: Uncaught Error: Cannot pass parameter 4 by reference in /Applications/MAMP/htdocs/homework2/Guestbook.php:15 Stack trace: #0 /Applications/MAMP/htdocs/homework2/index.php(9): sendForm('login1', 'asdfasfdasfd') #1 {main} thrown in /Applications/MAMP/htdocs/homework2/Guestbook.php on line 15


Что делать?
  • Вопрос задан
  • 560 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
В bind_param можно указывать только переменные.
$user = 170;
$query->bind_param('ssi', $message, $date, $user);

Ну или сразу с запросе указать
$query = $database->prepare("INSERT INTO messages(message,date,id_user) VALUES(?, ?, 170)");
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Enapiuz
@Enapiuz
велосипедостроительное бюро
$query->bind_param('ssi',$message,$date,170);

Вот тут первый аргумент выглядит явно лишним. Зачем он передается?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы