我试图使用PDO和准备好的语句来获取表的主键。从其他问题,我看到这是可能的,当执行这样的东西:
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);
}