繁体   English   中英

PHP mysql_query插入不起作用

[英]php mysql_query insert into not working

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

你有一个,'$id'

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

您的代码也可以进行SQL注入 您应该使用类似PDO的东西,而不要使用不推荐使用的mysql_ *函数。 使用PDO,您可以通过使用预处理语句防止SQL注入。

更改

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

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

您有一个逗号太多。

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

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

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

并且请使用PDOmysqli而不是不安全且已弃用的mysql_函数。

尝试

<?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 />

并且=>考虑安全性!

错误:

 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')"); 

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM