如何解决数据不是从形式插入DB中
| 我通过从我注册用户那里得到一个表格,该表格的代码如下: <div class=\"contentArea\">
<form action=\"NewUser.PHP\" method=\"POST\">
<div class=\"regd\">
<ul>
<li class=\"regdTitle\">Please enter your details:</li>
<li class=\"regdLable\">First Name</li>
<li><input type=\"Text\" class=\"regdInput\" name=\"first_name\" /></li>
<li class=\"regdLable\">Last Name</li>
<li><input type=\"Text\" class=\"regdInput\" name=\"last_name\" /></li>
<li class=\"regdLable\">Password</li>
<li><input type=\"Password\" class=\"regdInput\" name=\"pass\" /></li>
<li class=\"regdLable\">Re-Type Password</li>
<li><input type=\"Password\" class=\"regdInput\" name=\"re_pass\" /></li>
<li class=\"regdLable\">Email</li>
<li><input type=\"Text\" class=\"regdInput\" name=\"email\" /></li>
<li class=\"regdLable\">Country</li>
<li><select name=\"country\" style=\"width: 300px; height: 20px;\">
<option value=\" \" selected=\"selected\"></option>
<option value=\"ACT\">ACT</option>
<option value=\"NSW\">NSW</option>
<option value=\"NT\">NT</option>
<option value=\"QLD\">QLD</option>
<option value=\"SA\">SA</option>
<option value=\"TAS\">TAS</option>
<option value=\"VIC\">VIC</option>
<option value=\"WA\">WA</option>
</select></li>
<li><input type=\"button\" value=\"Submit\" class=\"regdBtn\" alt=\"Submit\"
title=\"Submit\" name=\"submit\"/></li>
<li><input type=\"button\" value=\"Cancle\" class=\"regdBtn\" alt=\"Cancle\"
title=\"Cancle\" onclick=\"location.href=\'index.PHP\'\" /></li>
</ul>
</div>
</form>
</div>
并且我有NewUser.PHP文件,从我将表单的值插入数据库,其代码如下:
<?PHP
// Includes
require_once (\'Includes/dbconn.PHP\');
require_once (\'Includes/functions.PHP\');
$first_name = $_POST [\'first_name\'];
$last_name = $_POST [\'last_name\'];
$pass = $_POST [\'pass\'];
$repass = $_POST [\'re_pass\'];
$email= $_POST [\'email\'];
$country = $_POST [\'country\'];
$query = \"INSERT INTO user (first_name,last_name,pass,email,country)
VALUES (\'{$first_name}\',\'{$last_name}\',\'{$pass}\',\'{$repass}\',\'{$email}\',\'{$country}\')\";
$result = MysqL_query ( $query,$conn );
if (isset ( $result )) {
echo \"Registration sucessful\";
//redirect_to ( UserRegd.PHP );
} else {
echo \"<p>User Registration Failed\" . MysqL_error () . \"</p>\";
}
?>
<?PHP MysqL_close($conn);?>
连接代码如下:
<?PHP
include_once \'Constants/ConConst.PHP\';
$conn = MysqL_connect(DB_SERVER,DB_USER,DB_PASS);
if(!$conn)
{
die(\'Connection not set\'. MysqL_error());
}
$db = MysqL_select_db(DB_NAME,$conn);
if(!$db)
{
die(\'Database not found\'.MysqL_error());
}
?>
我无法将表单值插入数据库中...可能我知道代码中的错误在哪里。
任何有意义的回应将不胜感激,并在此先感谢。还有像jsfiddle.com这样的在线编辑器,我们可以在其中放置我们的代码进行演示。
解决方法
您的INSERT语句是错误的。您正在尝试传递太多的值。 {repass}不应在VALUES()列表中。
这是对的:
$query = \"INSERT INTO user (first_name,last_name,pass,email,country)
VALUES (\'{$first_name}\',\'{$last_name}\',\'{$pass}\',\'{$email}\',\'{$country}\')\";
,if (isset ( $result )) { <= THIS LINE BEING WRONG
应该只是
if ($result) {
,好一个问题可能是您试图插入更多的VALUES,然后您为其指定了字段。
现在设置
first_name = $ first_name
last_name = $ last_name
pass = $ pass
email = $通过
国家= $电子邮件
??? = $国家
所以这是一个问题
第二个可能是您的SQL格式
它应该是:
INSERT INTO table_name(第1栏,第2栏,第3栏...)
VALUES(值1,值2,值3 ...)
因此,您不需要{}。
我不确定逗号。
还通过回显变量的值来检查以确保您的表单正确提交。
阅读此以获得更多帮助:
http://www.w3schools.com/sql/default.asp
我检查了我创建的数据库:
//将信息发送到数据库
// sql字符串发送到数据库
$ sql = \“ INSERT INTO\".$dbname.\"
.table
(First Name
,Last Name
)值(\'\”。$ first_name。\“ \',\'\”。$ last_name。\“ \'); \”;
VALUES的哪个是\'\“。$ var。\” \',所以您可以更好地看到
//查询数据库
$ result = mysql_query($ sql);
您需要使用正确的变量串联。
确保使用`,而不是\'。用于列名以及数据库名和表名
它在1.的左侧。
您还没有正确查询。
尝试像我的东西,它应该工作并正确验证。
我注意到有人在谈论不受SQL注入等的保护,
检查您的服务器设置/功能,大多数现在可以自动防止最严重的安全风险。
如果没有,请尝试使用XAMPP。
,查看您的查询
INSERT INTO用户(名字,姓氏,通行证,电子邮件,国家/地区)
VALUES(\'{$ first_name} \',\'{$ last_name} \',\'{$ pass} \',\'{$ repass} \',\'{$ email} \',\'{ $ country} \')\“
它们是五个值(first_name,last_name,pass,email,country)
它们是6个值
(\'{$ first_name} \',\'{$ last_name} \',\'{$ pass} \',\'{$ repass} \',\'{$ email} \',\'{$国家}\')\”
:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。