我目前正在尝试将wordpress网页中的表单中的数据输入到mysql数据库中。
这是wordpress上html页面的代码
<table>
<form name="form1" method="post" action="basisForm.php">
<strong>Please enter your information in order to download the Macs Cabs App</strong>
<tr><td>
Surmane Name:</td><td><input name="sname" type="text" id="sname"></td></tr>
<tr><td>
First Name:</td><td><input name="fname" type="text" id="fname"></td></tr>
<tr><td>
Home Address:</td><td><input name="homeaddr" type="text" id="homeaddr"></td></tr>
<tr><td>
Most common Destination:</td><td><input name="commondest" type="text" id="commondest"></td></tr>
<tr><td>
Mobile Number:</td><td><input name="mobileno" type="text" id="mobileno"></td></tr>
<tr><td>
Home Number:</td><td><input name="homeno" type="text" id="homeno"></td></tr>
<tr><td>
Email Address:</td><td><input name="email" type="text" id="email"></td></tr>
<tr><td>
<input type="submit" name="Submit" value="Submit"></td></tr>
</form>
</table>
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("macs cabs", $con);
$sql="INSERT INTO customers (sname, fname, homeaddr, commondest, mobileno, homeno, email)
VALUES
('$_POST[sname]','$_POST[fname]','$_POST[homeaddr]','$_POST[commondest]','$_POST[mobileno]','$_POST[ homeno]','$_POST[email]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
?>
我已经安装了phpexec插件,但似乎运行正常。
当我在表单中输入数据并提交时,它不会出现在数据库中。
我的主键似乎是自动增加,告诉我发生了一些事情,但没有数据出现。
提前致谢
答案 0 :(得分:0)
避免使用mysql_ *函数。您的插入查询不会转义用户输入。并且可能导致sql注入
请改用PDO或mysqli。两者都允许准备好的陈述。
$_POST
是一个关联数组。因此,您将传递密钥以获得特定值。
例如,如果POST数组包含名为&#34; name&#34;的键,则可以像下面这样访问它:$_POST['name']
。您可以使用单引号/双引号。
学习PDO的好教程:http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html
答案 1 :(得分:0)
试试这个:
$sql="INSERT INTO customers (sname, fname, homeaddr, commondest, mobileno, homeno, email)
VALUES ('{$_POST['sname']}','{$_POST['fname']}','{$_POST['homeaddr']}','{$_POST['commondest']}','{$_POST['mobileno']}','{$_POST['homeno']}','{$_POST['email']}')";
另外,我假设您了解SQL注入数据库的风险。即,您永远不应将用户输入的数据直接插入数据库,您应事先进行某种清理。
答案 2 :(得分:0)
可能不是你想要的答案但是......
我可能会使用wordpress内置函数。自定义帖子类型允许此功能。 (http://codex.wordpress.org/Post_Types)这里有一篇关于它的文章:http://wpshout.com/wordpress-submit-posts-from-frontend/
这意味着您利用wordpress的输入santizing并允许ui查看后端中的数据以进行编辑和删除等。
答案 3 :(得分:0)
@ jamalali81与他的回答是正确的,但我会删除$ _POST变量周围的'',所以代码看起来像这样:
$sql="INSERT INTO customers (sname, fname, homeaddr, commondest, mobileno, homeno, email)
VALUES ({$_POST['sname']},{$_POST['fname']},{$_POST['homeaddr']},{$_POST['commondest']},{$_POST['mobileno']},{$_POST['homeno']},{$_POST['email']})";
您还应该使用PDO并清理变量以避免SQL注入。
如果以上方法无法解决您的问题,那么客户表格结构也会有所帮助。
答案 4 :(得分:-1)
查看此查询: -
"INSERT INTO customers (sname, fname, homeaddr, commondest, mobileno, homeno, email)
VALUES
('$_POST['sname']','$_POST['fname']','$_POST['homeaddr']','$_POST['commondest']','$_POST['mobileno']','$_POST['homeno']','$_POST['email']')";
可能有帮助......:)