【问题标题】:MYSQL update query in PHP [closed]PHP中的MYSQL更新查询[关闭]
【发布时间】:2015-07-04 18:12:32
【问题描述】:

:)

我的错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 5 行的“1”附近使用正确的语法

这里有什么问题? INSERT 注释中的代码有效,UPDATE 无效。 $_GET['id'] 来自链接<a href='zapisnik_azuriranje.php?id=".$row["zapisnik_id"]."'>

if(!empty($_POST['zapisnik']&&isset($_GET['id']))) {
            $a=$_GET['id'];
            $datum_kreiranja=date('Y-m-d');
            $zapisnik=$_POST['zapisnik'];
            $opis=$_POST['opis'];
            $korisnik_id=$_SESSION["aktivni_korisnik_id"];

`

/*$upit = "INSERT INTO zapisnik (korisnik_id,naziv,datum_kreiranja,opis)
            VALUES ('$korisnik_id','$zapisnik','$datum_kreiranja','$opis')";*/

            $upit = "UPDATE zapisnik SET
            korisnik_id='$korisnik_id',
            naziv='$zapisnik',
            datum_kreiranja='$datum_kreiranja',
            opis='$opis 
            WHERE zapisnik_id='$a'";

            $rezultat = izvrsiUpit($upit);`

【问题讨论】:

  • 您的 SQL 语法有错误。查看您的 PHP 代码生成的 SQL,
  • 天哪 - 这些 sql 注入
  • 缺少报价。另外:SQL injection。使用newer database interfaceparameter binding 可以避免此类问题。查看更多recent tutorial
  • 这就是为什么要用 PHP7 移除 MySQLnd 的原因
  • 是的,我知道 sql 注入,但这只是必须工作的学生项目,我的时间和知识有限,无法更好地应用。谢谢

标签: php mysql post get


【解决方案1】:
$upit = "UPDATE zapisnik SET
            korisnik_id='$korisnik_id',
            naziv='$zapisnik',
            datum_kreiranja='$datum_kreiranja',
            opis='$opis' 
            WHERE zapisnik_id='$a'";

您在$opis 变量中缺少'。就是这样。

【讨论】:

  • 谢谢!我不知道我怎么没看到,我的代码被检查了 100 次
  • 有时你在看自己的代码时会失明,我猜每个程序员都会发生这种情况。