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,因为它不在代码中。但是是的,你是对的。。。。