[英]php mysql jquery: data not inserting
将表单数据提交到本地MySQL数据库时出现插入错误。 我已经为此工作了一段时间,还不太了解问题所在。 我会很感激有人可以仔细研究一下,并告诉我我做错了什么。
谢谢
以下是相关代码:
jquery.main.js:
//jquery.main.js
$('#submit_second').click(function(){
//send information to server
var data = $('#kisForm :input').serializeArray();
$.post( $('#kisForm').attr('action'), data, function(info) {
$('#result').html(info);
});
alert('Data sent')
return;
});
$('kisForm').submit( function() {
return false;
});
userInfo.php
<?php
include_once('db.php');
$firstname = $_POST['firstname'];
$middlename = $_POST['middlename'];
$lastname = $_POST['lastname'];
$query = ("INSERT INTO users VALUES ('$firstname', '$middlename', '$lastname')");
if(!$conn){
die("Can not connect: " .mysql_error());
}
if(mysql_query($query)){
echo "Record added successfully";[];
} else {
echo "Error: Record insert failed";
}
mysql_close($conn);
index.html
<!DOCTYPE HTML>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title></title>
<link rel="stylesheet" type="text/css" href="css/style.css" media="all"/>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery.main.js"></script>
<script type="text/javascript" src="js/cities.js"></script>
<script type="text/javascript" src="js/masked_input_1.3.1.js"></script>
</head>
<body>
<div id="container">
<form id=kisForm action="userInfo.php" method="post">
<!-- #first_step -->
<div id="first_step">
<h1>Volunteer Signup Form</h1>
<div class="form">
<input type="text" name="firstname" id="firstname" placeholder="first name"/>
<label for="firstname">Your first name. </label>
<input type="nr" name="middlename" id="middlename" placeholder="middle name"/>
<label for="middlename">Your middle name if applicable. </label>
<input type="text" name="lastname" id="lastname" placeholder="last name"/>
<label for="lastname">Your last name.</label>
<!-- clearfix -->
<div class="clear"></div>
<input class="submit" type="submit" name="submit_first" id="submit_first" value="" />
</div>
</div>
<!-- #second step -->
<div id="second_step">
<h1>KIS Volunteer Signup Form</h1>
<div class="form">
<h2>Summary</h2>
<div id="leftSummary">
<table>
<tr><td>First Name: </td><td></td></tr>
<tr><td>Middle Name:</td><td></td></tr>
<tr><td>Last Name: </td><td></td></tr>
</table>
</div>
<span id="result"></span>
</div>
<!-- clearfix -->
<div class="clear"></div>
<!-- /clearfix -->
<input class="back" type="button" value=""/>
<input class="send submit" type="submit" name="submit_second" id="submit_second" value=""/>
</div>
<div id = "third_step">
</div>
</form>
</div>
<div id="progress_bar">
<div id="progress"></div>
<div id="progress_text">0% Complete</div>
</div>
</body>
</html>
请向我们显示错误:
我认为这部分不完整,您需要指定表字段。
$ query =(“ INSERT INTO users VALUES('$ firstname','$ middlename','$ lastname')”);
改成
$ query =(“ INSERT INTO users(firstname,middlename,lastname)VALUES('$ firstname','$ middlename','$ lastname')”);;
或者,如果您不想指定,请在字段中输入“
$ query =(“ INSERT INTO users VALUES(”,'$ firstname','$ middlename','$ lastname')“);;
我假设第一个字段是用户ID。
好的,根据您上面显示的内容,据我了解,问题出在此代码中
$query = ("INSERT INTO users VALUES ('$firstname', '$middlename', '$lastname')");
如果未指定要将值插入其中的字段,则必须在查询中完成这些字段
例如。 如果只想插入firstname
, middlename
和lastname
, middlename
在用户表中有5个字段。
$query = ("INSERT INTO users(firstname, middlename, lastname) VALUES ('$firstname', '$middlename', '$lastname')");
但是,如果您的表只有3个字段,则您的查询没有任何问题。
但是,如果您要使用自己的语法,则至少应填写5个字段(假设您有5个字段。)
$query = ("INSERT INTO users VALUES ('$id','$firstname', '$middlename', '$lastname','$username')");
结论:
如果表上有5个字段,并且不想在查询中指定这些字段,则查询必须在values()中包含5个值。
但是,如果您只想插入5字段表中的3字段,则必须指定这些字段,否则将引发错误。
好吧,我终于明白了。
首先,最初我没有返回MySQL错误,而是返回了自己的编码错误,因此我对真正的问题没有任何了解。 因此,我回显了“ mysql_error()”,并确定错误是数据库未定义。 我使用“用户”表作为“ mysql_select_db()”参数。 当我将数据库放在参数中时,一切开始正常运行。
解决方法是:
mysql_select_db('kis'); <---'kis' is the database, not 'users.'
我还将数据库连接代码与选择代码放在同一php文件中,而不是作为“包含”文件,但我确定这与它没有任何关系。
衷心感谢Nikko,Kimbarcelona,Patrick Q和user3462511花费您的时间和精力来提供帮助。
这是更新的php文件:
<?php
$conn = mysql_connect('localhost', 'root', '');
mysql_select_db('kis');
if(!$conn){
die("Can not connect: " .mysql_error());
}
$firstname = $_POST['firstname'];
$middlename = $_POST['middlename'];
$lastname = $_POST['lastname'];
if(mysql_query("INSERT INTO users VALUES ('','$firstname', '$middlename', '$lastname')")) {
echo "Successfully Inserted Data";
} else echo "Error: " , mysql_error();
mysql_close($conn);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.