使用php UPDATE时,mysql表不会更新

时间:2016-04-14 14:33:21

标签: php mysql

我有一个用于更新mysql表的HTML页面,当用户完成修改后,点击"提交"页面底部的按钮,名为“valider'”。我使用POST方法,操作导致带有UPDATE请求的php页面,但它不会更新。我已经尝试将上一页的值放入变量中,然后在请求中使用它们,但它仍然无法正常工作。这是php代码:

<?php
include_once("connexionMysql.php");
    if(isset($_POST['valider'])){
        $titreIci=$_POST["titre"];
        $idIci=$_POST["id"];
        $envoie= "UPDATE AY_albums SET titre='$titreIci' WHERE id='".$idIci."'";
    }

    header("Location: pageDaccueilAdmin.php");
?>

5 个答案:

答案 0 :(得分:1)

小心 !!您的代码中有一个大错误:您无法控制$ idIci参数!所以它非常容易受到SQL注入攻击!任何人都可以擦除您的数据库或破坏您的网站...

首先,我建议控制$ idIci:

$idIci = $_POST['id']
if (!is_numeric($idIci))
{
    echo "Bad parameter!!";
    exit;
}

或者使用PDO-&gt; bindParam()方法......你在哪里执行查询?

答案 1 :(得分:1)

&#34; id&#34;必须是数据库中的 int ,并且您将其转换为字符串,这可能会导致问题,也请检查您的配置文件: 删除标题重定向以查看是否有错误。

答案 2 :(得分:0)

您应该将LongRunning变量发送到将其发送到数据库服务器的某个函数。与$invoie

一样

答案 3 :(得分:0)

检查var_dump($_POST);并查看SQL更新行之前的数据。您可能发送了错误的数据。另外,出于安全原因,请使用$idIci = (int) $_POST["id"];

答案 4 :(得分:0)

问题中显示的代码只是将字符串值赋给变量。

这就是它所做的一切。

没有执行SQL语句。

该变量的内容 not 被发送到数据库以作为SQL语句执行。这不会发生,无论多少你使字符串看起来像一个SQL语句。除非您的代码能够实现,否则它不会作为SQL语句执行。

公平警告......当代码 将该字符串作为SQL语句发送到数据库时,代码将容易受到 SQL注入的攻击。< / p>