Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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 无法将表单提交到数据库_Php_Mysql_Html_Wordpress - Fatal编程技术网

Php 无法将表单提交到数据库

Php 无法将表单提交到数据库,php,mysql,html,wordpress,Php,Mysql,Html,Wordpress,我和WordPress合作,我在管理部分做了一个表格。我正试图将它提交到另一个数据库(不是默认的wp数据库),因此我成功地切换了数据库并执行了插入查询,但我一直收到一个错误 这是我的代码: $selected = mysql_select_db( 'petracms', $serverAccess ); if (!$selected) { die ('Can\'t use foo : ' . mysql_error()); } $query = "INSERT INTO `petra_c

我和WordPress合作,我在管理部分做了一个表格。我正试图将它提交到另一个数据库(不是默认的wp数据库),因此我成功地切换了数据库并执行了插入查询,但我一直收到一个错误

这是我的代码:

$selected = mysql_select_db( 'petracms', $serverAccess );
if (!$selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
$query = "INSERT INTO `petra_customers` (`FirstName`, `LastName`, `Email`, `Phone`) VALUES ($fName, $lName, $email, $phone)";
$result = mysql_query($query);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
我不断地发现这个错误:

无效查询:SQL语法中有错误;在第1行“@gmail.com,5859475566)”附近,查看与MySQL服务器版本对应的手册,以获取正确的语法

这是我的输入:
(亚当,第页,bofumme@gmail.com,5859475566)


我不知道我做错了什么

插入语句中的值需要用引号括起来(除了“数字”):

插入'foo'('a','b','c')值(“foo”,“bar”,1)
这就是(安全地)构造用于查询字符串插值的变量的方法(尽管不赞成这样做):

$email=sprintf('%s',mysql\u real\u escape\u string($\u POST['email']);
$query=“插入`foo`(`email`)值($email)”;
一种更优雅(也更安全)的方法是使用准备好的语句(示例使用):

#准备陈述
$sth=$dbh->prepare('INSERT-INTO'foo`('email`)值(:email');
#替换查询中的占位符并执行它
$sth->execute(数组)(
'email'=>$\u POST['email']
));

我猜您忘记在
插入查询中添加引号了。查看web上关于如何进行简单插入的任何教程,例如:

也许它将“@”解释为某种形式的正则表达式。这是我最好的猜测,我对PHP了解不多。尝试将“\”字符放在“@”字符前面。哦,如果这样的话,考虑不要使用内联变量。相反,连接它们。例如:“值”。$myVariableToInsert.;”