<form method="post" action="updatescreen(2).php">
Name of company:<br />
<input type="text" name="artid" id="artid" size="50" /><br /><br />
<input type="submit" name="Insert" id="Insert" value="Insert" /><br /><br />
<?php
if(isset($_POST['Insert'])){
$id = $_POST['artid'];
mysql_query("INSERT INTO test (id) VALUES ('$id', )");
}
?></form>
包含与数据库的连接,因此此处未提及。连接工作正常,这不是问题。
问题是:php代码不起作用。 php代码不会将数据插入我的数据库。怎么了?
答案 0 :(得分:3)
,
之后你有一个'$id'
:
mysql_query("INSERT INTO test (id) VALUES ('$id')");
您的代码也向SQL injection开放。您应该使用类似PDO的内容而不是不推荐使用的mysql_ *函数。使用PDO,您可以使用prepared statements来防范SQL注入。
答案 1 :(得分:3)
更改
mysql_query("INSERT INTO test (id) VALUES ('$id', )");
到
mysql_query("INSERT INTO test (id) VALUES ('$id')");
答案 2 :(得分:2)
你有一个逗号太多了。
mysql_query("INSERT INTO test (id) VALUES ('$id')");
将来,请尝试打印错误,这将帮助您自己调试问题:
mysql_query("INSERT INTO test (id) VALUES ('$id')") or die(mysql_error());
请使用PDO
或mysqli
代替mysql_
函数,这些函数不安全且已弃用。
答案 3 :(得分:0)
尝试
<?php if(isset($_POST['Insert'])){
$id = $_POST['artid'];
mysql_query("INSERT INTO test (id) VALUES ('".$id."')")or die(mysql_error());
}?>
<form method="post" action="updatescreen(2).php">
Name of company:<br />
<input type="text" name="artid" id="artid" size="50" /><br /><br />
<input type="submit" name="Insert" id="Insert" value="Insert" /><br /><br />
和=&gt;想想安全!
答案 4 :(得分:0)
错误:
mysql_query("INSERT INTO test (id) VALUES ('$id', )"); ^---not secure, potencial sql injection ^----not need ","
使用此代码可获得更高的安全性(最重要的是更好的pdo或mysqli):
if(isset($_POST['Insert'])){ $id = mysql_real_escape_string($_POST['artid']); mysql_query("INSERT INTO test (id) VALUES ('$id')");
}