PHP和MySQL连接似乎正常,但表未更新

时间:2018-09-27 23:20:53

标签: php mysql heroku cleardb

我正在使用以下代码将其插入到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 :(得分:1)

您的查询从未执行过。您可能要使用mysqli_query(...)来执行SQL语句。

所以这行:

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

应该是:

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

然后它应该可以工作并更新您的表。为了确保您的查询安全,请尝试使用prepared statements。使用mysqli_real_escape_string()不足以防止SQL注入。