Я пытаюсь перейти с PHP v5.4 на php v7.0, где я столкнулся с проблемой невозможности выполнить внутренний вложенный запрос. Я использовал pdo_sqlsrv для моего сервера SQL, но поскольку драйверы PDO для него еще не доступны для PHP v7.0, я переключился на pdo_odbc. Способен ли выполнять вложенные запросы, специфичные для sqlsrv? Я добавил тестовый код, чтобы прояснить ситуацию.
Класс DBTEST для экземпляра PDO:
class DBTEST{
private static $instance = null;
public static function getInstance(){
$userid = "testUser";
$pwd = "love-da-poe-poes";
self::$instance = new PDO("odbc:testdb", $userid, $pwd);
return self::$instance;
}
}
Вложенные запросы:
$parentQuery = "Select pid from Tree";
$parentResult = DBTEST::getInstance()->prepare($parentQuery);
$parentResult->execute();
$childQuery = "Select cid, cname from Tree where pid = ?";
$childResult = DBTEST::getInstance()->prepare($childQuery);
while($parentObject = $parentResult->fetchObject()){
$childResult->bindParam(1, parentResult->pid, PARAM_INT);
$childResult->execute();
while($childObject = $childResult->fetchObject()){
//do something with results
}
}
Задача ещё не решена.
Других решений пока нет …