@KronosHD

Как добавить в базу данные через insert into?

Вобщем, есть такой код:
ad2013bd10ad4401a25b643c3dc18ae6.png
Но выбивает ошибку в этой строке. Что не так?
9c9e7ea7bc244e7b9e3ecedc92bcacb2.png
кстати, это работает. Но это в другом файле
3d408e84ae8a43789929f1c6ae6993ad.png
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
cha-cha
@cha-cha
Вы где такому SQL-у научились?
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А где Вы нашли такой синтаксис функции mysqli::query()? В описании -
mixed mysqli::query ( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Вы пытаетесь подставить в строку переменные $1, $2 и $3. Где они заданы?
Для mysqli лучше использовать параметризованные запросы. То, что сейчас - уязвимо к SQL-инъекции.
$req = $mysqli->prepare('INSERT INTO `balance_log` (`user_id`, `message`, `amount`, `date`) VALUES (?, 1, ?, ?)');
$time = time();
$req->bind_param('isi', $id, $sum, $time);
$req->execute() or die("Mysql error ".$mysqi->errno.": ".$mysqli->error);
$req->close();

Ну и время лучше хранить в поле с типом TIMESTAMP, а по умолчанию поставить CURRENT_TIMESTAMP, тогда его можно не передавать из программы, база запишет его автоматически при добавлении строки.
Ответ написан
swipeshot
@swipeshot
Учусь на ошибках.
Попробуйте выполнить этот sql запрос в соответствующей вкладке. Что он там выведет? Попробуйте убрать or die...
Где вы вообще подставляете значения?

Зачем вы, когда у вас двойные кавычки, закрываете перед переменными?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы