Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么';这个简单的fetch PDO语句有什么问题?_Php_Mysql_Pdo_Prepared Statement_Fetch - Fatal编程技术网

Php 什么';这个简单的fetch PDO语句有什么问题?

Php 什么';这个简单的fetch PDO语句有什么问题?,php,mysql,pdo,prepared-statement,fetch,Php,Mysql,Pdo,Prepared Statement,Fetch,这个PDO代码怎么了?它没有给我任何结果,尽管在数据库的tip表中肯定有一些结果 try{ $this->pdo = new PDO( "mysql:host=".zConfig::read('hostname').";dbname=".zConfig::read('database'), zConfig::read('username'), zConfig::read('password'), zConfig::read('drivers')); $this->p

这个PDO代码怎么了?它没有给我任何结果,尽管在数据库的
tip
表中肯定有一些结果

try{
    $this->pdo = new PDO( "mysql:host=".zConfig::read('hostname').";dbname=".zConfig::read('database'), zConfig::read('username'), zConfig::read('password'),  zConfig::read('drivers'));
    $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $this->pdo->prepare("SELECT tip_text FROM tip WHERE product_id=:product_id AND item LIKE :which");
        $stmt->execute(array(':product_id'   => $id, ':which' => $which  ));

        $row = $stmt->fetch(PDO::FETCH_ASSOC);
            if($row['tip_text']!='') echo $row['tip_text'];
            else echo "";
    }
    catch(PDOException $e)  
    {  echo 'Error: ' . $e->getMessage();   }

我在哪里可以打印出PDO执行的最终查询?(包括参数)?变量
$id
$id
从上面正确填充。

至于打印实际填写的查询,您可能需要检查mysql日志;如果PDO执行真正的prepare而不是模拟prepare,那么查询将不会由PDO填写,而是由DBMS填写。尽管它模拟了prepare,但我不知道有什么方法可以获得实际发送的查询。真正帮助我调试应用程序的方法之一是在开发过程中回显我的查询,通过使用PDO,我可以不再那么方便吗?这不是PDO的问题;这是事先准备好的陈述的一个(轻微)缺点。您使用的任何提供它们的库,如果它实际上准备了一个语句,都可能有相同的问题。它们的全部要点是SQL和数据是分开的,最好是一直分开的,DBMS在最后将它们结合起来。@user961627:如果在此之前没有出现异常,则查询是成功的,并且没有返回任何行。奇数。我会在执行之前执行
var\u dump($id,$which)
,并确保使用了正确的值。