【问题标题】:PHP and MySQL connection seems to be working, but table is not updatingPHP 和 MySQL 连接似乎工作正常,但表没有更新
【发布时间】:2019-03-03 22:03:34
【问题描述】:

我正在使用以下代码插入 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.';
  }
}

【问题讨论】:

    标签: php mysql heroku cleardb


    【解决方案1】:

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

    所以这一行:

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

    应该是:

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

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

    【讨论】:

    • 感谢您的快速回复。就是这样。
    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2015-04-06
    • 2020-04-15
    • 1970-01-01
    相关资源
    最近更新 更多