如何将 MySQL 语句 'show index' 与 PDO 一起使用?

How can I use MySQL statement 'show index' with PDO?

我正在尝试使用 PDO 和准备好的语句来获取 table 的主键。从其他问题我看到执行这样的事情时这是可能的:

show index from TABLENAME where Key_name = 'PRIMARY'

问题是我无法通过在 PHP 下使用 PDO 从准备好的语句中使用它。我使用的代码如下:

$pdo = new PDO('mysql:host=localhost;charset=utf8;dbname=eclass', "user", "pass");
$stm = $pdo->prepare("show index from `TABLENAME` where `Key_name` = 'PRIMARY'");
$res = $stm->execute();

现在的问题是,虽然语句创建正确,但是执行失败。我确定这不是权限问题,因为我 运行 作为 root 没有结果。当我直接从 mysql 提示中 运行 这个 SQL 代码时,它确实显示了结果。

EDIT: 看来周末过后,这个说法就神奇地起作用了。我不知道为什么会这样。感谢您的帮助。

你确定失败了吗?这段代码的结果是什么?

$pdo = new PDO(
"mysql:dbname=" . SQL_DB . ";host=" . SQL_HOST, SQL_USER, SQL_PWD,
    array(
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    )
);

try {
    $stm = $pdo->prepare("show index from `TABLENAME` where `Key_name` = 'PRIMARY'");
    $res = $stm->execute();
    print_r($stm->fetch(PDO::FETCH_ASSOC));
} catch (Exception $e) {
    print_r($e);
}