无法将数据INSERT到mysql数据库

时间:2018-06-14 11:32:44

标签: php mysql amazon-ec2

  • 我正在使用AWS EC2
  • 我的安全组入站规则是:

enter image description here

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';
}

需要建议!!!

1 个答案:

答案 0 :(得分:2)

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

版权

您需要确保尝试执行查询的MySQL用户具有这样做的必要权限。尝试对insert语句以及所有参数进行硬编码。你能这样做吗?或者你得到一个你没有权利这样做的错误?

弃用

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

SQL注入

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

XSS注射

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

是消息还是消息

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

检查您的日志

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