如何将 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);
}
我正在尝试使用 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);
}