我有一个用于更新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");
?>
答案 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>