Php 将用户输入存储到数据库中

Php 将用户输入存储到数据库中,php,javascript,html,Php,Javascript,Html,我对PHP相当陌生,我正在尝试将用户的输入保存到mysql数据库中。我在网上学习了一个如何做的教程,但每次我输入用户信息时,网站都告诉我失败了。我唯一能想到的就是主机名(我从phpadmin复制并粘贴了它)。如果有什么问题,请告诉我 contact.html <section id="mid_section"> <div id="boxes"> <h1>

我对PHP相当陌生,我正在尝试将用户的输入保存到mysql数据库中。我在网上学习了一个如何做的教程,但每次我输入用户信息时,网站都告诉我失败了。我唯一能想到的就是主机名(我从phpadmin复制并粘贴了它)。如果有什么问题,请告诉我

contact.html

<section id="mid_section">
                <div id="boxes">
                    <h1>
                        Leave your information here for a quick reponse:
                    </h1>
                    <br/>
                    <form id="myform" action="userinfo.php" method="post">
                        Name:<input type="text" value="name">
                        Email:<input type="email" value="email">
                        Phone:<input type= "tel" value="phone(opt)">
                        <button id="sub">Submit</button>
                    </form>

由于您可能是php的新手,一方面,学习教程非常好, 然而,选择一个正确的来源可能是一个经常发生的灾难性问题

当您使用诸如
mysql\u select\u db
mysql\u query
之类的函数时,基本上意味着您使用的是不推荐的mysql样式

如果您访问官方php文档并搜索mysql方法,它将告诉您有关它的弃用情况

然而,这里的问题并不是您与数据库交互的方式,您的编码风格仍然有效,许多人仍然这样做

我只是告诉你,作为一个新手,人们倾向于使用mysqli和/或PDO,而不是使用
mysql\uu
函数。把他们当作你未来的朋友。

你的问题呢,我相信一切都好,除了你的mysql_查询函数看起来很奇怪。 尝试以下代码而不是查询语句

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".$name."','".$email."','".$phone."')"))
或者出于安全原因更好

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".mysql_real_escape_string($name)."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($phone)."')"))
如果不是这样,您仍然会得到一个“Fail”错误语句,您将需要进行一些调试,这里的人将能够帮助您解决问题

因此,您需要使用下面的内容,而不是您现在拥有的内容

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".mysql_real_escape_string($name)."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($phone)."')")) {
    echo 'Success!'
} else {
    echo mysql_error();
    exit;
}

让我们看看会发生什么

因为您可能是php的新手,一方面,遵循教程很好, 然而,选择一个正确的来源可能是一个经常发生的灾难性问题

当您使用诸如
mysql\u select\u db
mysql\u query
之类的函数时,基本上意味着您使用的是不推荐的mysql样式

如果您访问官方php文档并搜索mysql方法,它将告诉您有关它的弃用情况

然而,这里的问题并不是您与数据库交互的方式,您的编码风格仍然有效,许多人仍然这样做

我只是告诉你,作为一个新手,人们倾向于使用mysqli和/或PDO,而不是使用
mysql\uu
函数。把他们当作你未来的朋友。

你的问题呢,我相信一切都好,除了你的mysql_查询函数看起来很奇怪。 尝试以下代码而不是查询语句

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".$name."','".$email."','".$phone."')"))
或者出于安全原因更好

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".mysql_real_escape_string($name)."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($phone)."')"))
如果不是这样,您仍然会得到一个“Fail”错误语句,您将需要进行一些调试,这里的人将能够帮助您解决问题

因此,您需要使用下面的内容,而不是您现在拥有的内容

if (mysql_query("INSERT INTO `users` (`name`, `email`, `phone`) VALUES ('".mysql_real_escape_string($name)."','".mysql_real_escape_string($email)."','".mysql_real_escape_string($phone)."')")) {
    echo 'Success!'
} else {
    echo mysql_error();
    exit;
}

让我们看看会发生什么首先,在表单的每个属性上使用name。因此,contact.html将是

<form id="myform" action="userinfo.php" method="post">
                        Name:<input type="text" value="name" name='name'>
                        Email:<input type="email" value="email" name='email'>
                        Phone:<input type= "tel" value="phone(opt)" name='phone'>
                        <button id="sub">Submit</button>
</form>

首先,在表单的每个属性上使用name。因此,contact.html将是

<form id="myform" action="userinfo.php" method="post">
                        Name:<input type="text" value="name" name='name'>
                        Email:<input type="email" value="email" name='email'>
                        Phone:<input type= "tel" value="phone(opt)" name='phone'>
                        <button id="sub">Submit</button>
</form>

你的代码非常容易破解。了解如何清理变量并停止使用已弃用的
mysql.*
。使用
mysqli.*
PDO
。您是否可以声明特定的错误消息?我们无法神奇地发现错误,除非它非常明显。你有自己的mysql数据库吗?是的,我有自己的sql数据库@bfavaretto@RUJordan你能说得更具体些吗?我是新来PHPHow的你知道它不起作用吗?这页是白色的吗?第3行有语法错误吗?是不是给你一个mysql错误?每一个小细节都有助于破解你的代码。了解如何清理变量并停止使用已弃用的
mysql.*
。使用
mysqli.*
PDO
。您是否可以声明特定的错误消息?我们无法神奇地发现错误,除非它非常明显。你有自己的mysql数据库吗?是的,我有自己的sql数据库@bfavaretto@RUJordan你能说得更具体些吗?我是新来PHPHow的你知道它不起作用吗?这页是白色的吗?第3行有语法错误吗?是不是给你一个mysql错误?每一个小细节都有助于获得安全建议。我更新了所有内容,现在我收到一条消息:无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器。。我尝试使用localhost作为主机以及custsql.eigbox.net。这可能意味着必须启动
mysqld
才能创建和访问
mysql.sock
。您需要检查它是否正在运行。我认为你需要参考这个问题或寻找类似的答案。祝你好运谢谢你的安全建议。我更新了所有内容,现在我收到一条消息:无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器。。我尝试使用localhost作为主机以及custsql.eigbox.net。这可能意味着必须启动
mysqld
才能创建和访问
mysql.sock
。您需要检查它是否正在运行。我认为你需要参考这个问题或寻找类似的答案。祝你好运我做了你解释的所有事情,现在我有以下错误:“内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请与服务器管理员联系,并通知他们错误发生的时间,以及您所做的任何可能导致错误的操作。有关此错误的更多信息,请参阅服务器错误日志。“我按照您的说明执行了所有操作,现在出现以下错误:“内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请与服务器管理员联系,并通知他们错误发生的时间,以及您所做的任何可能导致错误的操作。有关此错误的详细信息,请参阅服务器错误日志。“