Соединение PHP и MySQL, кажется, работает, но таблица не обновляется - PullRequest
0 голосов
/ 28 сентября 2018

Я использую следующий код для вставки в таблицу MySQL.Я провел некоторое ручное тестирование, чтобы определить, все ли переменные установлены правильно.Код выполняет оператор успеха, и когда я проверяю журналы Heroku, он дает статус 200. Тем не менее, когда я проверяю таблицу, ничего не было вставлено.Может ли кто-нибудь идентифицировать проблему с кодом или направить меня туда, где я могу найти сообщение об ошибке, чтобы помочь мне ее исправить.Спасибо.

else {
  $url = parse_url(getenv('CLEARDB_DATABASE_URL'));
  $server = $url['host'];
  $username = $url['user'];
  $password = $url['pass'];
  $db = substr($url['path'], 1);
					
  $conn = mysqli_connect($server, $username, $password, $db);

	$sql = sprintf("INSERT INTO messages (name, email, message) VALUES ('%s', '%s', '%s')",
  mysqli_real_escape_string($conn, $name),
  mysqli_real_escape_string($conn, $email),
  mysqli_real_escape_string($conn, $message));

  $result = mysqli_real_escape_string($conn, $sql);

  if (!$result) {
    echo 'an error occurred.';
  }

  else {
    $success = 'Thank you. Your submission was saved.';
  }
}

1 Ответ

0 голосов
/ 28 сентября 2018

Ваш запрос никогда не был выполнен.Возможно, вы захотите использовать mysqli_query(...) для выполнения ваших операторов SQL.

Итак, эта строка:

$result = mysqli_real_escape_string($conn, $sql);

Должна быть:

$result = mysqli_query($conn, $sql);

Тогда это должно работать иобнови свою таблицу.Чтобы обеспечить безопасность ваших запросов, попробуйте использовать подготовленные операторы .Использование mysqli_real_escape_string() недостаточно для предотвращения SQL-инъекций.

...