php和mysql连接似乎正常,但表没有更新

t2a7ltrp  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(398)

我使用下面的代码插入到mysql表中。我做了一些手动测试,以确定所有的变量都设置正确。代码正在执行success语句,当我检查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.';
  }
}
vmjh9lq9

vmjh9lq91#

您的查询从未执行过。您可能想使用 mysqli_query(...) 执行sql语句。
所以这一行:

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

应该是:

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

然后它应该工作并更新您的表。为了确保您的查询是安全的,请尝试使用准备好的语句。使用 mysqli_real_escape_string() 不足以阻止sql注入。

相关问题