0

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

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

我的主键似乎自动递增,告诉我发生了什么事,但没有数据出现。

提前致谢

4

5 回答 5

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 注入数据库的风险。即,您永远不应该将用户输入的数据直接插入数据库,您应该事先进行某种清理。

于 2012-11-09T12:10:14.360 回答
0

避免使用 mysql_* 函数。您的插入查询不会转义用户输入。并且很可能导致sql注入

请改用 PDO 或 mysqli。两者都允许准备好的语句。

$_POST是一个关联数组。因此,您将传递密钥以获取特定值。例如,如果 POST 数组包含一个名为“name”的键,那么您可以像这样访问它$_POST['name']:您可以使用单引号/双引号。

学习 PDO 的好教程:http ://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html

于 2012-11-09T12:05:22.653 回答
0

可能不是您正在寻找的答案,但...

我可能会为此使用内置功能的wordpress。自定义帖子类型允许此功能。(http://codex.wordpress.org/Post_Types) 这里有一篇关于它的文章:http://wpshout.com/wordpress-submit-posts-from-frontend/

这意味着您可以利用 wordpress 的输入过滤并允许用户界面查看后端中的数据以进行编辑和删除等。

于 2012-11-09T12:16:03.070 回答
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 注入。

如果上述方法不能解决您的问题,customers 表结构也会有所帮助。

于 2012-11-09T12:34:59.647 回答
-1

check with this query:-

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

may helpful...:)

于 2012-11-09T12:00:59.700 回答