Php 无法将表单提交到数据库
我和WordPress合作,我在管理部分做了一个表格。我正试图将它提交到另一个数据库(不是默认的wp数据库),因此我成功地切换了数据库并执行了插入查询,但我一直收到一个错误 这是我的代码: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
$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.;”