【发布时间】:2013-11-27 05:29:04
【问题描述】:
我有这个插入 id、名字和姓氏的 PHP 代码:
<?php
header('Access-Control-Allow-Origin: *');
$conn = mysql_connect('localhost', 'happy', '***');
$db = mysql_select_db('dbtest');
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
mysql_query("INSERT INTO tbltry (firstname, lastname) VALUES('$firstname', '$lastname')");
?>
我有这个带有 AJAX 的 HTML:
<script>
function save(){
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("POST", " **url** ", true);
console.log("added");
xmlhttp.send();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
}
}
}
</script>
</head>
<body>
Firstname: <input type="text" name="firstname" id="firstname">
Lastname: <input type="text" name="lastname" id="lastname">
<button onclick="save()">Save</button>
</body>
这两个工作正常,它在数据库中插入一个新行,但插入的唯一数据是 id 列上的 id 和列 firstname 和 lastname 是空白的。
有人能告诉我我错过了什么吗?任何帮助将不胜感激。
【问题讨论】:
-
你能把这个拼写 $fisrtname 改成 $firstname
-
旁注:您的 PHP 脚本已公开邀请进行 SQL 注入攻击。
-
也请尝试从 mysql* 扩展转移到 PDO,因为 mysql* 扩展已正式弃用
-
您的 javascript 函数
save需要知道在发布请求中要发送哪些数据(您的输入)。 -
这可能是您的代码中的错字;你有 VALUES('$fisrtname', '$lastname') 而不是 VALUES('$firstname', '$lastname') 。看看能不能解决。