Вы не получаете ошибок, потому что вы не проверяете их.Вероятно, что вставка не работает.В этом случае ваш звонок на query()
вернет FALSE
, поэтому вам нужно проверить это.
$sql = "INSERT INTO forum(user, message, date) VALUES('$user','$message','$date')";
if ($mysqli->query($sql) === false) {
throw new Exception('Error performing insert: ' . $mysqli->error);
}
Также обратите внимание, что в следующем коде вы не прерываете, вы простораспечатайте сообщение об ошибке, а затем продолжите работу со сценарием:
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
Измените echo
на throw
, чтобы скрипт остановился.
И в идеале вы хотите использоватьподготовленные заявления вместо real_escape_string()
.Как то так:
$stmt = $mysqli->prepare('INSERT INTO forum(user, message, date) VALUES(?, ?, ?)');
if ($stmt === false) {
// prepare failed
}
$stmt->bind_param('sss', $_GET['username'], $_GET['message'], date('Y-m-d H:i:s'));
if ($stmt->execute() === false) {
// exec failed
}