Php PDO更新查询不存在';我不能真正更新记录

Php PDO更新查询不存在';我不能真正更新记录,php,mysql,pdo,Php,Mysql,Pdo,这是我的密码。我创建了一个更新新闻的代码 但目前并没有显示出错误。但不进行更新 <?php require("common.php"); global $host, $dbname, $username, $password, $options; $conteudox = $_POST['conteudo']; //$imagem = $_['imagem']; if(isset($_POST['conteudo']))

这是我的密码。我创建了一个更新新闻的代码 但目前并没有显示出错误。但不进行更新

 <?php

    require("common.php"); 
    global $host, $dbname, $username, $password, $options; 


    $conteudox = $_POST['conteudo'];

    //$imagem = $_['imagem'];

        if(isset($_POST['conteudo']))
        {

            $dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password);
            $sql = "UPDATE news SET conteudo = '{$conteudox}' WHERE id = '{$id_cont}'";
            $count = $dbh->exec($sql);

                echo "ssssss";

            $dbh = null;
        }
        else
            {
                echo "nnnnn";
            }


?>
请使用重试

if(isset($_POST['conteudo']))
{
    $dbh = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $dbh->prepare("UPDATE news SET conteudo = ? WHERE id = ?");

    // where's $id_cont comming from?
    $count = $stmt->execute(array($_POST['conteudo'],$id_cont));

    echo "ssssss";

    $dbh = null;
}
else
{
    echo "nnnnn";
}

检查所有变量并尝试使用:

$sql = "UPDATE news SET conteudo = :conteudox WHERE id = :id_cont";

$dbh->prepare($sql);

$count=$dbh->execute(array(':conteudox'=>$conteudox,
                           ':id_cont'=>$id_cont));

如果您使用的是PDO,那么请使用绑定变量!!!!您正在将
$conteudox
设置在
if-isset
之外。甚至什么是
$id\u cont
?那么
$id\u cont
是什么呢?祝贺SQL注入,即使您使用的是PDO。难道不需要使用prepare-before-execute吗?我不认为$conteudox是在isset语句之后设置的。我更担心$id\u-cont,因为它不在代码中。但是是的,你是对的。。。。