php mysql_query插入不工作

时间:2013-11-06 13:31:25

标签: php mysql

<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代码不会将数据插入我的数据库。怎么了?

5 个答案:

答案 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());

请使用PDOmysqli代替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')");
     

}