【问题标题】:Not able to INSERT data to mysql database无法将数据插入到 mysql 数据库
【发布时间】:2018-06-14 20:07:20
【问题描述】:
  • 我正在使用 AWS EC2
  • 我的安全组入站规则是:

Mysql 用户表是:

mysql> select user,host from mysql.user;

+------------------+-----------+
| user             | host      |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session    | localhost |
| mysql.sys        | localhost |
| root             | localhost |
+------------------+-----------+
  • 我可以通过 SELECT 访问数据库,并且可以在 php 上打印 网页。
  • 问题在于 INSERT 查询。

代码是:

$queryb = "INSERT INTO contact_us (name,contact,email,message) 
           VALUES ('$_POST[contact_person]', 
                   '$_POST[mobile]',
                   '$_POST[email]',
                   '$_POST[messages]')";
if (mysql_query($queryb))
{
    $success='Thank You ';
}
else
{
    $error='Error Occured ! Try after sometime';
}

需要建议!!!

【问题讨论】:

  • 请添加您的代码,以便我们查看发生了什么。
  • 需要代码来提出建议。
  • 您登录的用户是否允许执行插入命令?
  • 您是如何确定系统“无法”做某事的?为什么不检查错误代码?很可能,mysql_query is deprecated
  • @LajosArpad 是的

标签: php mysql amazon-ec2


【解决方案1】:

您需要检查在尝试执行该语句时遇到的错误。让我们看看问题和可能的问题:

权利

您需要确保您尝试执行查询的 MySQL 用户具有执行此操作所需的权限。尝试硬编码 insert 语句以及所有参数。你能做到吗?或者您是否收到您无权这样做的错误?

弃用

mysql_ 函数已弃用。您将需要使用mysqli_ 函数或PDO

SQL 注入

由于SQL Injection 的可能性,您的代码具有很高的安全风险。您将需要通过mysqli_real_escape_string 转义您的查询或通过 PDO 参数化您的查询。如果您不这样做,如果用户想要入侵您的网站,甚至窃取数据,他们将能够破坏您的数据库。

XSS 注入

由于XSS injection 的可能性,您的代码也具有很高的安全风险。您需要确保不会将脚本注入到您的字段中,除非您明确允许这样做。 XSS 注入是窃取其他用户数据的一种可能手段。

是消息还是消息

检查您的$_POST["messages"] 中的内容。它是一个数组吗?如果是这样,您尝试将数组用作字符串,因此会出现异常。

检查您的日志

您需要检查服务器日志以找到您所面临的确切问题。如果未启用服务器日志记录,则需要启用它并再次运行 PHP 代码。

【讨论】:

    猜你喜欢
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2013-04-28
    相关资源
    最近更新 更多