2015-02-24 82 views
1

好吧,我尽量让与PDO MYSQL的更新查询,以便学习如何让它工作,然后做一个功能,使其更有效地动态PHP MYSQL PDO查询不更新[无错误返回]

问题是不起作用,我做所有的日志文件允许我调试和个人回报,我alsy修复任何导航器告诉&即使与萤火虫

任何想法可以是什么?

任何建议,问题,意见或任何形式的回答不是帮助改善,澄清或回答的问题将大大aprreciated

在此先感谢

<?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

+0

究竟什么是你的'回声$ QLS;'输出? – Alex 2015-02-24 18:03:53

+0

它取决于哪些部分我添加文本和其他什么不是,但这是什么返回与当前测试更新'cmtmplo' SET'标题'=:标题,'REGIN' =:REGIN,'CTGRY' =:CTGRY WHERE' Id_Msg'=:ids – user57129 2015-02-24 20:37:35

+0

那么请告诉我'$ qls'的输出? – Alex 2015-02-24 20:46:21

回答

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"; 

apostrophs蜱

+0

尝试,你没事,但它仍然不更新 – user57129 2015-02-24 20:39:26

+0

冒号是不需要 – meda 2015-02-24 21:12:23

+0

@ user57129所以现在我们可以看到你正在改变'$ qls。=“WHERE'Id_Msg'=:ids”;'到'$ qls。=“WHERE \'Id_Msg \'=:ids”;'spostrophs嘀嗒 – Alex 2015-02-24 21:25:07

2

PHP PDO提供了一种很好的查找方式看看查询可能有什么问题。 PDOStatement::execute()默认情况下只返回true或false。它不会返回任何具体的细节。

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

var_dump($con->errorInfo()); 

有关详细信息,请参阅文档页面:

+0

另外'$ dbh-> setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);'会启用异常基于错误的处理,如果这种事情变成你的曲柄。 – Sammitch 2015-02-24 21:26:21

+0

你可以在这个代码的情况下实例吗?,我不太习惯使用这个错误处理程序,谢谢 – user57129 2015-02-24 21:31:32

+0

@ user57129在你的代码中,你可以做一些事情:'if($ stmt-> execute()){echo'Successfully updated'} else {print_r( $ con> errorInfo())}' – 2015-02-24 22:07:08