Я пытаюсь использовать PDO и подготовленные операторы, чтобы получить первичный ключ таблицы. Из других вопросов я увидел, что это возможно при выполнении чего-то вроде этого:
show index from TABLENAME where Key_name = 'PRIMARY'
Проблема в том, что я не могу использовать это из подготовленного оператора, используя PDO под PHP. Я использую следующий код:
$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 без результата. Когда я напрямую запускаю этот код SQL из командной строки mysql, он действительно показывает результат.
РЕДАКТИРОВАТЬПохоже, что после выходных, заявление волшебным образом работает. Я не знаю, почему это произошло. Спасибо за помощь.
ты уверен, что это не удается? что является результатом этого кода?
$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);
}
Других решений пока нет …