首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP和MySQL连接似乎正常工作,但是表没有更新

问PHP和MySQL连接似乎正常工作,但是表没有更新
EN

Stack Overflow用户
提问于 2018-09-28 07:20:53
回答 1查看 27关注 0票数 1

我使用以下代码插入到一个MySQL表中。我已经做了一些手动测试,以确定所有变量都设置正确。代码正在执行成功语句,当我检查Heroku日志时,它给出了状态200。然而,当我检查该表时,没有插入任何内容。有没有人可以找出代码中的问题,或者告诉我在哪里可以找到错误消息来帮助我解决这个问题。谢谢。

​

代码语言:javascript
复制
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.';
  }
}

​

EN

回答 1

Stack Overflow用户

发布于 2018-09-28 07:26:04

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

所以这一行:

代码语言:javascript
复制
$result = mysqli_real_escape_string($conn, $sql);

应该是:

代码语言:javascript
复制
$result = mysqli_query($conn, $sql);

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52546315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档