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

4

5 回答 5

3

你有一个,'$id'

mysql_query("INSERT INTO test (id) VALUES ('$id')");

您的代码也对SQL 注入开放。您应该使用PDO之类的东西而不是 mysql_* 函数,这些函数已被弃用。使用 PDO,您可以通过使用准备好的语句来防止 SQL 注入。

于 2013-11-06T13:32:23.877 回答
3

改变

mysql_query("INSERT INTO test (id) VALUES ('$id', )");

mysql_query("INSERT INTO test (id) VALUES ('$id')");
于 2013-11-06T13:32:39.067 回答
2

你有一个逗号太多了。

mysql_query("INSERT INTO test (id) VALUES ('$id')");

以后,尝试打印错误,这将帮助您自己调试问题:

mysql_query("INSERT INTO test (id) VALUES ('$id')") or die(mysql_error());

请使用PDOormysqli代替mysql_不安全且已弃用的功能。

于 2013-11-06T13:34:09.227 回答
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 />

=> 考虑安全!

于 2013-11-06T13:35:31.620 回答
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')");

}

于 2013-11-06T13:39:01.750 回答