动态 PHP PDO MYSQL 查询未更新 [未返回错误]
Dynamic PHP PDO MYSQL query doesn't Update [No error returned]
好的,我尝试使用 PDO 进行更新查询 MYSQL 以便了解它是如何工作的,然后创建一个函数以使其更有效
问题是没有用,我做了日志文件允许我的所有调试,个人 returns 也是,我也修复了导航器告诉的任何地方 & 甚至 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();
?>
echo $qls 输出
UPDATE cmtmplo SET Title = :Title , REGIN = :REGIN , CTGRY = :CTGRY WHERE 'Id_Msg' = :ids
PHP PDO 提供了一种找出查询可能出错的好方法。
PDOStatement::execute()
只有 return 默认为 true 或 false。它不会 return 任何具体细节。
详细的错误信息可以使用:
var_dump($con->errorInfo());
有关更多详细信息,请参阅文档页面:http://php.net/manual/en/pdo.errorinfo.php
您需要将 'Title'
等所有标签更改为 ':Title'
:
if(isset($_POST['Title']) && !empty($_POST['Title'])) {
$stmt->bindValue(':Title', $_POST['Title']);
}
....
等等...您绑定的所有参数必须以:
开头
所以现在我们可以看到您应该更改
$qls .= " WHERE 'Id_Msg' = :ids";
到
$qls .= " WHERE `Id_Msg` = :ids";
撇号转刻度
好的,我尝试使用 PDO 进行更新查询 MYSQL 以便了解它是如何工作的,然后创建一个函数以使其更有效
问题是没有用,我做了日志文件允许我的所有调试,个人 returns 也是,我也修复了导航器告诉的任何地方 & 甚至 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();
?>
echo $qls 输出
UPDATE cmtmplo SET Title = :Title , REGIN = :REGIN , CTGRY = :CTGRY WHERE 'Id_Msg' = :ids
PHP PDO 提供了一种找出查询可能出错的好方法。
PDOStatement::execute()
只有 return 默认为 true 或 false。它不会 return 任何具体细节。
详细的错误信息可以使用:
var_dump($con->errorInfo());
有关更多详细信息,请参阅文档页面:http://php.net/manual/en/pdo.errorinfo.php
您需要将 'Title'
等所有标签更改为 ':Title'
:
if(isset($_POST['Title']) && !empty($_POST['Title'])) {
$stmt->bindValue(':Title', $_POST['Title']);
}
....
等等...您绑定的所有参数必须以:
所以现在我们可以看到您应该更改
$qls .= " WHERE 'Id_Msg' = :ids";
到
$qls .= " WHERE `Id_Msg` = :ids";
撇号转刻度