<html>
<head>
</head>
<body>
<form action = "insertform.php" method = "post">
field: <input type = "text" name = "fielda">
field2: <input type = "text" name = "fieldb">
thedata: <input type = "text" name = "qdata">
<input type = "submit" name = "submit">
</form>
<?php
if (isset($_POST['submit'])){
$con = mysql_connect("localhost","user","password");
if (!$con){
die("cannot connect" . mysql_error());
}
mysql_select_db("stQutieria",$con);
$sql = "INSERT INTO qtable(fielda, fieldb, qdata) VALUES ("$_POST[fielda]","$_POST[fieldb]","$_POST[qdata]")";
mysql_query($sql,$con);
mysql_close($con);
}
?>
</body>
</html>
编辑:好的!所以我改变了我的代码,我玩了双引号或'围绕$ _POST区域。当我使用双引号时,我得到错误说fielda / fieldb wernt定义,我也有错误说“语法错误,意外'$ _POST'(T_VARIABLE)”...我正在使用的代码派生自相同的页面ass插入形式。 PHP。这是我正在观看的视频http://www.youtube.com/watch?v=j4FUCoCxE8w。如果有人能通过Skype / msn / teamview帮助我,我将非常感激。
答案 0 :(得分:4)
你在编写正确的sql语句时会犯这样的错误
$sql ="INSERT INTO qtable(fielda, fieldb, qdata) VALUES (".$_POST[fielda].",".$_POST[fieldb].",".$_POST[qdata].")";
请注意,上面的sql语句适用于数据库中为整数的字段,如果字段为varchar,则后面的代码为
$sql ="INSERT INTO qtable(fielda, fieldb, qdata) VALUES ('".$_POST[fielda]."','".$_POST[fieldb]."','".$_POST[qdata]."')";
谢谢
答案 1 :(得分:3)
您的(实际为not true)< / p> $_POST
密钥周围缺少引号:$_POST[fielda]
应为$_POST['fielda']
等。
您的表格后需要一个空格,而左括号qtable(fielda
应为qtable (fielda
您在'$_POST[fielda]
(应该是'$_POST[fielda]'
)之后和'$_POST[fieldb]
之后(应该是'$_POST[fieldb]'
)
您没有错误处理。如果您在查询后致电mysql_error()
,您就会知道完全您的错误是什么。
您使用的是obsolete API
答案 2 :(得分:0)
这意味着您的查询失败。可能是因为表名和列名之间没有空格:
INSERT INTO qtable (fielda, fieldb, qdata)
答案 3 :(得分:0)
将您的SQL替换为:
$sql = "INSERT INTO qtable (fielda, fieldb, qdata) VALUES ('".$_POST['fielda']."','".$_POST['fieldb']."','".$_POST['qdata']."')";
但这确实不安全......
更安全的是使用这样的东西:
$values = array($_POST['fielda'], $_POST['fieldb'], $_POST['qdata']);
$st = $db->prepare('INSERT INTO qtable (fielda, fieldb, qdata) VALUES (?,?,?)');
$st->execute($values);