hoting
Новичок
Друзья привет, если кто-то имеет дело с PDO MySQL, подскажите что можно сделать. Суть проблемы такова, при использовании PDO у меня нереально тормозит проект. На старой библиотеке MySQL такого не было, хотя разработчики PDO заявляют об увеличении производительности... итак вот код:
Сам процесс установки соединения с БД
Далее код на выборку данных
В чем может быть причина жутких тормозов?
Сам процесс установки соединения с БД
Код:
$dbpasswd = "******";// пароль
// Задаем параметры среды
$option = array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_PERSISTENT => true);
try {
//Подключение в локальном пространстве
$dbh = new PDO('mysql:host=127.0.0.1; dbname=crm; charset=utf8', $dbuser, $dbpasswd, $option);
//Нужная кодировка для базы данных при работе с данными
$dbh->exec('SET NAMES utf8');
}
catch (PDOException $e) { //Обработчик ошибок
print "В процессе подключения произошла ошибка!: " . $e->getMessage() . "<br/>";
die();
}
Код:
try ////Запрос на выборку данных и перемещаем указатель
{
$QueryPeople = $dbh->prepare('SELECT * FROM `peoples` ORDER BY ?');
$QueryPeople->execute(array($sortdata));
}
catch ( Exception $e ) //Если будет ошибка, выводим её для отладки
{
echo "Шеф Фсё пропало! : ".$e -> getMessage ();
}
while($DataPeople = $QueryPeople->fetch())
{
try //Проверяем профессию
{
$profesname = $dbh->prepare('SELECT * FROM `profession` WHERE `id_profession` = ?');
$profesname->execute(array($DataPeople['id_profession']));
if ($profesname->rowCount() > 0) //если есть хоть одна запись
{
$profname = $profesname->fetch(); //массив данных строки
$userprofessionname = $DataPeople['profession'];
} else {$userprofessionname=" ";} //Если нет никаких записей
}
catch ( Exception $e ) //Если будет ошибка, выводим её для отладки
{
echo "Шеф Фсё пропало! : ".$e -> getMessage ();
}
try //Осуществляем запрос к беазе email адресов
{
$qeryemailname = $dbh->prepare('SELECT * FROM `peopleemail` WHERE `id_peoples` = ?');
$qeryemailname->execute(array($DataPeople['id_people']));
if ($qeryemailname->rowCount() > 0) //если есть хоть одна запись
{
while($dataemailname = $qeryemailname->fetch())
{
echo "<i class=\"material-icons\" style=\"color:#797979; font-size:12pt; vertical-align:middle;\">mail_outline</i> ".$dataemailname['email']."<br>";
}
}
}
catch ( Exception $e ) //Если будет ошибка, выводим её для отладки
{
echo "Шеф Фсё пропало! : ".$e -> getMessage ();
}
ну и еще много разного кода, в т.ч. и обращение к смежным таблицам
} // Конец цикла While