PDO查询什么都不返回

时间:2015-09-01 12:10:23

标签: php sql ajax pdo

我的查询有问题,它什么也没有返回。

WHERE Sample_Date BETWEEN '2015-08-01' AND '2015-08-31' . . .

我从ajax请求(JQUERY)获取变量并且我之前初始化它们,我避免使用代码。 页面上的其他请求有效。 由于ajax调用,我目前无法查看是否有错误。 (没有php橙色框/ pdo消息) 我试图解决问题,我发现我们进入了if。 我删除了包含while的第一个查询,我用值替换了$ row [' id'],我工作了。 从一开始,我一直在复制并粘贴到我的数据库的连接,所以没问题。

所以我的问题在这里:

  if($champ == "type_id")       
            {
                $bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
                $request = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
                $request->execute(array(':old' => $old));
                while($row = $request->fetch())
                {
                    $bdd1 = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
                    $request1 = $bdd1->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
                    $request1->execute(array(':type_id' => $row['id'],':id' => $id));
                }
            }

我不知道自己做错了什么......

                $request = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
                $request->execute(array(':old' => $old));
                while($row = $request->fetch())

这样可行,所以我尝试了这个:

 $request = $bdd->prepare('SELECT * FROM type_commercant');
                $request->execute();
                while($row = $request->fetch())

我们不会进入条件if($ row [' type'] == $ old),但是我删除了这个条件,当我用这样的东西替换时:

                    $request = $bdd->prepare('SELECT * FROM type_commercant');
                $request->execute();
                while($row = $request->fetch())
                {
                    if($row['type'] == $old)
                    {
                        $request1 = $bdd->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
                        $request1->execute(array(':type_id' => $row['id'],':id' => $id));
                    }

                }

它有效...我检查了$ row [' type'],$ row [' id'],$ old in array(':type_id' => $ row [' id'],所有变量都得到了字符串的注意。那么问题是什么? 提前谢谢!

2 个答案:

答案 0 :(得分:-1)

嗯,怎么说......

我用旧数据更新数据我自己解释:

$bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");
            $request = $bdd->prepare('SELECT id FROM type_commercant WHERE type=:old');
            $request->execute(array(':old' => $old));

从type_commercant获取旧ID,我这样做:

 $request1 = $bdd1->prepare('UPDATE commercant SET type_id=:type_id WHERE id=:id');
                $request1->execute(array(':type_id' => $row['id'],':id' => $id));

所以我用旧ID替换旧ID。

对不起这个错误,无论如何感谢读我并试着解决这个问题:D

答案 1 :(得分:-1)

尝试拨打PDO::exec()来执行UPDATEDELETE

$bdd = new PDO("mysql:dbname=maruecondi_db;host=localhost","root","");

if($champ == "type_id")       
{
    $stmt = $bdd->prepare('SELECT * FROM type_commercant WHERE type=:old');
    $stmt->execute(array(':old' => $old));
    $rows = $stmt->fetchAll(); 
    // Uncomment this to know what you get
    // var_dump($rows);
    foreach ( $rows as $row ) {
        $bdd->exec(
            "UPDATE commercant
                SET type_id = " . $bdd->quote($row['id']) .
            " WHERE id = " . $bdd->quote($id)
        );
    }
}

您可以使用此代码进行调试。

var_dump( $bdd->errorInfo() );