PDO returns longtext 列上的 NULL,即使它不是 NULL

PDO returns NULL on longtext column, even if it's not NULL

我正在尝试从外部 wordpress 手动获取 Wordpress table wp_post 上的一行。我使用 PDO 如下:

$dbh2 = new PDO("mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, DB_USER, DB_PASSWORD);
    $dbh2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh2->prepare("SELECT WP.* FROM wp_posts WP, wp_term_relationships WTR WHERE WP.ID = WTR.object_id AND WP.ID = '821'");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($results as $result){
    print_r($result);

}

查询有效,但我得到一个非常奇怪的结果:列 post_content 返回为 NULL 即使它不为空(我检查了 PhpMyAdmin。带有 ID 的 post : 821存在且内容丰富)。

为什么它在该列上返回 NULL?

补充说明:

  1. post_content 列有 longtext 类型
  2. post_content 里面有一段很长的文字,2086 个字符,充满了 html 标签。

编辑: 答案正确且有效。奇怪的是 var_dump 正确输出了内容,而 FirePHP returns 中的函数 fb() NULL。小心!

检索 'longtext' (blob) 列的示例的实现。

注意:手册不正确关于返回一个流,因为它returns一个字符串包含'lob'.

的内容
$pdo = new PDO("mysql:host=localhost;dbname=testmysql", 'test', 'test');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$stmt = $pdo->prepare("SELECT WP.ID,
                            WP.post_title,
                            WP.post_content,
                            length(WP.post_content) AS post_length
                       FROM
                             wp_posts WP
                       WHERE
                             WP.ID = :ID");

// which record to select
$stmt->bindValue(':ID', 821, PDO::PARAM_INT);

// store output in these variables
$stmt->bindColumn(1, $wpId, PDO::PARAM_INT);
$stmt->bindColumn(2, $wpTitle, PDO::PARAM_STR);
$stmt->bindColumn(3, $wpContent, PDO::PARAM_LOB);
$stmt->bindColumn(4, $wpLength, PDO::PARAM_INT);

$stmt->execute();
$results = $stmt->fetch(PDO::FETCH_BOUND);

// display output
var_dump($wpId, $wpTitle, $wpLength);
var_dump($wpContent);

Table定义

Field         Type          
------------  ------------  
ID            bigint(20)    
post_title    varchar(255)  
post_content  longtext

示例输出:

int 821
string 'first' (length=5)
int 2741

string 'First Post - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacus urna, impe'... (length=2741)