我从YouTube教程中获取了以下代码(信用:pbj746)。所有这些似乎都与提交的数据无关,而这些数据并未出现在数据库中!我检查了$ dbhost,$ db,$ dbuser和$ dbpassword,它们都匹配,但数据没有被拉入。
如果有人能提供帮助那就太棒了!
<?php
$dbServer = "localhost";
$db = "quizsoft_newsletter";
$dbUser = "admin_newsletter";
$dbPassword = "password";
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
$email = $_POST['email'];
mysql_query("INSERT INTO emails ('ID', 'Email')
VALUES(NULL, '$email')") or die(mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Form</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(e) {
$("div#msgbox").hide();
$("#addEmail").click(function() {
$.post('process.php', {
email:$("#email").val()
},
function(response) {
$("div#msgbox #msg").html("Email Submitted Successfully!")
$("div#msgbox").slideDown("normal");
}
);
return false;
});
$("div#msgbox").click(function() {
$(this).slideUp("normal");
})
});
</script>
<style>
body { font:Verdana, Geneva, sans-serif; font-size:13px; }
div#msgbox { background:#999; border-bottom:1px solid #CCC; color:#FFF; width:100%; height:30px; top:0; left:0; cursor:pointer; }
div#msgbix #msg { line-height:30px; padding-left:10px; }
form#newsletter { margin-top:35px; }
</style>
</head>
<body>
<div id="msgbox"><span id="msg"> </span></div>
<form id="newsletter">
Email:<input type="text" id="email" />
<input type="submit" id="addEmail" value="Submit" />
</form>
</body>
</html>
谢谢D!
已编辑:此外,我运行了一个简单的PHP脚本来确认数据库连接:http://quizsoft.co.uk/ajaxform/test.php
答案 0 :(得分:0)
除了下面列出的内容之外,还有一点语法错误。 $dbServer
应重命名为$dbhost
,反之亦然。
此外,根据您的评论我知道您在ID上使用自动增量,因此我建议您更改此
INSERT INTO emails ('ID', 'Email') VALUES(NULL, '$email')
到这个
INSERT INTO emails (`Email`) VALUES ('$email')
因为ID不能为null,并且需要使用反引号来封装列名。
另外,就像一个抬头,你的sql容易受到sql注入,你可能想要研究使用pdo(这里是tutorial)而不是弃用的mysql函数。如果没有,你至少应该替换
$email = $_POST['email'];
通过
$email = mysql_real_escape_string($_POST['email']);