使用php在wordpress中输入数据到mysql数据库

时间:2012-11-09 11:56:18

标签: php mysql wordpress

我目前正在尝试将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插件,但似乎运行正常。

当我在表单中输入数据并提交时,它不会出现在数据库中。

我的主键似乎是自动增加,告诉我发生了一些事情,但没有数据出现。

提前致谢

5 个答案:

答案 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']')";

可能有帮助......:)