我试图将我的HTML表单中的一些数据发布到我的mysql数据库中。
这是我的HTML代码:
<!doctype html>
<html>
<head>
</head>
<body style="background-color:#BCB7B7">
<form id="form1" name="form1" method="post" style="text-align:center" action="post.php">
<input type="text" name="name" id="name" placeholder="Name">
<p></p>
<input type="text" name="age" id="age" placeholder="Age">
<p></p>
<input type="text" name="food" id="food" placeholder="Food">
<p></p>
<input type="submit" name="submit" id="submit" value="Submit">
</form>
</body>
</html>
这是我的PHP代码:
<?php
$connect = mysql_connect("localhost","myusername","mypassword","mydbname");
mysql_select_db("mydbname",$connect);
mysql_query("INSERT INTO myTable VALUES Name = $_POST[name], Age = $_POST[age], Food = $_POST[food]");
?>
但数据未保存
答案 0 :(得分:3)
必须引用SQL中的字符串。您将变量转储到没有引号的SQL中。
你的语法也错了。格式为INSERT INTO table_name (column_name, column_name) VALUES value, value
。
您也无法逃避数据,因此您很容易受到SQL注入攻击。
解决问题:
mysql_
库并切换为mysqli_
或PDI
此question about preventing SQL injection包含how to use those libraries safely的示例。
答案 1 :(得分:1)
INSERT
命令有2个不同的版本 - 您没有使用它们。
要么:
INSERT INTO myTable SET Name = "Peter",
Age = 15, Food = "pizza"
或
INSERT INTO myTable (Name, Age, Food) VALUES
("Peter", 15, "pizza")
答案 2 :(得分:0)
你必须引用这些值:
mysql_query("INSERT INTO myTable VALUES Name = '$_POST[name]', Age = '$_POST[age]', Food = '$_POST[food]'");
提示:您应该使用mysqli或PDO函数,因为不推荐使用mysql_函数
答案 3 :(得分:0)
试试这个
<?php
$connect = mysql_connect("localhost","myusername","mypassword","mydbname") or die("error while connecting to the database");
mysql_select_db("mydbname",$connect) or die("error while selecting the database");
mysql_query("INSERT INTO myTable VALUES ('" . mysql_real_escape_string($_POST[name]) . "', '" . mysql_real_escape_string($_POST[age]) . "', '". mysql_real_escape_string($_POST[food]) . "')");
?>