Я использую NetBeans начиная с его версии 7.0 и с тех пор его любимую IDE для PHP, но сегодня я использовал его для проекта, и это доставляет мне проблемы с завершением кода PDO.
Есть два случая,
1) Если я создаю экземпляр объекта PDO на той же странице, то все завершение кода является правильным.
2) Но когда я храню свой объект PDO в другом файле и требую этот файл, завершение кода не работает.
ПРИМЕРЫ
1)
<?php
/**
* In this case the code completion works fine
*/
try {
$db = new PDO('mysql:host=localhost;dbname=tshop', 'root', 'mypass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
2
<?php
/**
* But in this case it doesn't work
*/
try {
require_once '../../includes/database_connection.php';
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
Спасибо всем заранее!
Добавление комментария должно исправить проблему, которую я считаю:
try {
require_once '../../includes/database_connection.php';
/* @var $db PDO */
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = 'SOME SQL QUERY';
$result = $db->query($sql);
} catch (Exception $ex) {
$error = $ex->getMessage();
}
Тем не менее, если бы я был, я бы не стал устанавливать соединения с БД таким способом, потому что, если вы не будете осторожны, вы можете легко получить несколько соединений, которые могут произойти случайно, что потенциально может превысить максимальное количество соединений.
Других решений пока нет …