Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP在MySQL中插入电子邮件地址_Php_Mysql - Fatal编程技术网

使用PHP在MySQL中插入电子邮件地址

使用PHP在MySQL中插入电子邮件地址,php,mysql,Php,Mysql,在过去的几个小时里,我一直在与一个相当荒谬的错误作斗争。 这就是我做的登记表。用户需要输入一封电子邮件,邮件将存储在mysql表中。(我必须警告你——请忽略安全问题,整个事情只是一个练习)。但我经常从sql中得到以下错误: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在'@gmail.com附近,blqh2@gmail.com,1)“在第1行 html格式如下: <form method="post" action="createnew.

在过去的几个小时里,我一直在与一个相当荒谬的错误作斗争。 这就是我做的登记表。用户需要输入一封电子邮件,邮件将存储在mysql表中。(我必须警告你——请忽略安全问题,整个事情只是一个练习)。但我经常从sql中得到以下错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在'@gmail.com附近,blqh2@gmail.com,1)“在第1行

html格式如下:

      <form method="post" action="createnew.php">
            <label >user name</label>
            <input name="login_id"></br>
            <label>password</label>
            <input name="password" password></br>
                    ...some more stuff...
            <label>Privet e-mail</label>
            <input name="prv_email"></br>
            <label>Public e-mail</label>
            <input name="pub_email"></br>
            <label>Are you a reseller</label>
            <input type="checkbox" name="reseller"></br>
            <input type="submit">
        </form>
最后是邮件字段的MySQL格式(实际上,prv_电子邮件和pub_电子邮件的格式相同)

我确实试过很多东西,但似乎都不管用。它总是被压碎。 还有一件事——我正在本地主机上运行这段who代码(使用WAMP),不确定这段代码是否能解决这个问题。 如果您需要任何其他信息,请告诉我,非常感谢。

以下内容:

"($login_id,$password,$usr_phone,$region,$prv_email,$pub_email,$reseller)"
将被解析为文本,并将其呈现为您在上面看到的错误。您需要将每个变量用单引号括起来,以便将其视为字符串值

我建议您看看,因为PDO为数据库提供了一个抽象层,并且具有很高的安全性(例如通过准备好的语句)


此外,您将插入到字段
pub_-mail
,但是从您在帖子中给定的输出来看,它应该是
pub_-mail

您必须用单引号(')括起您的值更改此代码片段:

$sql="INSERT INTO users".
    "(login_id,password,usr_phone,region,prv_email,pub_email,reseller)".    "VALUES".
    "($login_id,'$password','$usr_phone','$region','$prv_email','$pub_email','$reseller')"

您至少需要在字符串周围添加
”,并对所有传递的参数进行分析。更好的做法是将准备好的语句与PDO或mysqli一起使用

do a
echo$sql;模具()在$sql行之后。然后在这里发布。阅读更多关于
@
的信息以及为什么会出现这个错误:啊哈,现在我明白了。谢谢你的建议。我对PHP有点陌生,但PDO是几乎所有人都在催促我去看的东西,所以这将是我的下一步。而且,是的,这是一个错误:)享受旅程@阿洛蒂尔:-)
"($login_id,$password,$usr_phone,$region,$prv_email,$pub_email,$reseller)"
$sql="INSERT INTO users".
    "(login_id,password,usr_phone,region,prv_email,pub_email,reseller)".    "VALUES".
    "($login_id,'$password','$usr_phone','$region','$prv_email','$pub_email','$reseller')"