动态PHP PDO MYSQL查询没有更新[没有返回错误]

时间:2015-02-24 17:40:02

标签: php mysql pdo sql-update

好的,我尝试使用PDO MYSQL进行更新查询,以便了解如何使其工作,然后创建一个更有效的功能

问题是不起作用,我执行日志文件允许的所有调试,以及个人返回,我会修复导航器告诉&即使使用Firebug

有什么想法可以吗?

任何建议,问题,评论或任何答案,而不是帮助改进,澄清或回答问题都会受到很大的抨击

提前致谢

<?php
include('conexion.php');
session_start();


 $idf = $_POST['Id_Msg'];
 $ids = (int) $idf;

 var_dump($ids);
  echo '<br /><br />';
 var_dump($_FILES);

 echo '<br /><br />';
 var_dump($_POST);
 echo '<br /><br />';

  $wlq = -1;

 if($_POST['Title']) {
     $wlq++;
 }
 if($_POST['Prelude']) {
     $wlq++;
 }

 if($_POST['Text']) {
     $wlq++;
 }

 if($_POST['NOMBR1']) {
     $wlq++;
 }

 if($_POST['NOMBR2']) {
     $wlq++;
 }

 if($_POST['NOMBR3']) {
     $wlq++;
 }

 if($_POST['NOMBR4']) {
     $wlq++;
 }

 if($_POST['REGIN']) {
     $wlq++;
 }

 if($_POST['CTGRY']) {
     $wlq++;
 }

 if(!empty($_FILES['RutIm']['name'])) {
     $wlq++;
     echo 'me esta detectando visteh!';
 }

 echo "Asignado es: ".$wlq.'<br /><br />';

 $qls = "UPDATE `cmtmplo` SET";

 if($_POST['Title']) {
     if($wlq > 0){
    $qls .=" `Title` = :Title , ";
    $wlq--;
     } else {
    $qls .=" `Title` = :Title";
    }
 }

 if($_POST['Prelude']) {
     if($wlq > 0){
    $qls .=" `Prelude` = :Prelude , ";
    $wlq--;
     } else {
    $qls .=" `Prelude` = :Prelude";
    }
 }

 if($_POST['Text']) {
     if($wlq > 0){
    $qls .=" `Text` = :Text , ";
    $wlq--;
     } else {
    $qls .=" `Text` = :Text";
    }
 }

 if($_POST['NOMBR1']) {
     if($wlq > 0){
    $qls .=" `NOMBR1` = :NOMBR1 , ";
    $wlq--;
     } else {
    $qls .=" `NOMBR1` = :NOMBR1";
    }
 }

 if($_POST['NOMBR2']) {
     if($wlq > 0){
    $qls .=" `NOMBR2` = :NOMBR2 , ";
    $wlq--;
     } else {
    $qls .=" `NOMBR2` = :NOMBR2";
    }
 }

 if($_POST['NOMBR3']) {
     if($wlq > 0){
    $qls .=" `NOMBR3` = :NOMBR3 , ";
    $wlq--;
     } else {
    $qls .=" `NOMBR3` = :NOMBR3";
    }
 }

 if($_POST['NOMBR4']) {
     if($wlq > 0){
    $qls .=" `NOMBR4` = :NOMBR4 , ";
    $wlq--;
     } else {
    $qls .=" `NOMBR4` = :NOMBR4";
    }
 }

 if($_POST['REGIN']) {
     if($wlq > 0){
    $qls .=" `REGIN` = :REGIN , ";
    $wlq--;
     } else {
    $qls .=" `REGIN` = :REGIN";
    }
 }

 if($_POST['CTGRY']) {
     if($wlq > 0){
    $qls .=" `CTGRY` = :CTGRY , ";
    $wlq--;
     } else {
    $qls .=" `CTGRY` = :CTGRY";
    }
 }

 if(!empty($_FILES['RutIm']['name'])) {
     if($wlq > 0){
    $qls .=" `RutIm` = :RutIm , ";
    $wlq--;
     } else {

    }
 }

 $qls .= " WHERE 'Id_Msg' = :ids";
 echo $qls;
 $stmt = $con->prepare($qls);
 $stmt->bindValue(':ids', $ids);

 if(isset($_POST['Title']) && !empty($_POST['Title'])) {
    $stmt->bindValue('Title', $_POST['Title']);
 } 

 if(isset($_POST['Prelude']) && !empty($_POST['Prelude'])) {
    $stmt->bindValue('Prelude', $_POST['Prelude']);
 } 

 if(isset($_POST['Text']) && !empty($_POST['Text'])) {
    $stmt->bindValue('Text', $_POST['Text']);
 } 

 if(isset($_POST['NOMBR1']) && !empty($_POST['NOMBR1'])) {
    $stmt->bindValue('NOMBR1', $_POST['NOMBR1']);
 } 

 if(isset($_POST['NOMBR2']) && !empty($_POST['NOMBR2'])) {
    $stmt->bindValue('NOMBR2', $_POST['NOMBR2']);
 } 

 if(isset($_POST['NOMBR3']) && !empty($_POST['NOMBR3'])) {
    $stmt->bindValue('NOMBR3', $_POST['NOMBR3']);
 } 

 if(isset($_POST['NOMBR4']) && !empty($_POST['NOMBR4'])) {
    $stmt->bindValue('NOMBR4', $_POST['NOMBR4']);
 }

 if(isset($_POST['REGIN']) && !empty($_POST['REGIN'])) {
    $stmt->bindValue('REGIN', $_POST['REGIN']);
 }

 if(isset($_POST['CTGRY']) && !empty($_POST['CTGRY'])) {
    $stmt->bindValue('CTGRY', $_POST['CTGRY']);
 }

 if(!empty($_FILES['RutIm']['name'])) {
    $carpeta = "images/";
    opendir($carpeta);
    $destiny = $carpeta.$_FILES['RutIm']['name'].".jpg";
    copy($_FILES['RutIm']['tmp_name'],$destiny);
    $skr=$_FILES['RutIm']['name'];
    $stmt->bindValue('RutIm', $skr);    
 }
$stmt->execute(); 
?>

回显$ qls输出

UPDATE cmtmplo SET Title = :Title , REGIN = :REGIN , CTGRY = :CTGRY WHERE 'Id_Msg' = :ids

2 个答案:

答案 0 :(得分:2)

PHP PDO提供了一种查找查询可能出错的好方法。 PDOStatement::execute()默认只返回true或false。它不会返回任何具体细节。

有关详细的错误信息,您可以使用:

var_dump($con->errorInfo());

有关详细信息,请参阅文档页面:http://php.net/manual/en/pdo.errorinfo.php

答案 1 :(得分:1)

您需要将'Title'等所有标签更改为':Title'

 if(isset($_POST['Title']) && !empty($_POST['Title'])) {
    $stmt->bindValue(':Title', $_POST['Title']);
 } 

....

等等...您绑定的所有参数必须以:

开头

现在我们可以看到你应该改变

$qls .= " WHERE 'Id_Msg' = :ids";

$qls .= " WHERE `Id_Msg` = :ids";

撇号蜱虫