Я переехал в PDO и написал небольшую функцию для всех моих запросов (SELECT/DELETE/INSERT/UPDATE
):Как избежать нескольких подключений к базе данных?
function pdo_query($query, $parameter)
{
try {
$db=new PDO("mysql:host=localhost;dbname=...","root","");
} catch (PDOException $e) {
die("DB-Error!");
}
$stmt = $db->prepare($query);
$stmt->execute($parameter);
if (substr($query,0,6)=="SELECT") {
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
return $stmt->rowCount();
}
}
я использую эту функцию несколько раз на некоторых страницах, и поэтому он производит несколько дБ/соединяют объекты.
Возможно ли установить соединение вне функции запроса?
Я думал, что это может работать, но это не делает:
global $db;
try {
$db=new PDO("mysql:host=localhost;dbname=...","root","");
} catch (PDOException $e) {
die("DB-Error!");
}
function pdo_query($query, $parameter)
{
$stmt = $db->prepare($query);
$stmt->execute($parameter);
if (substr($query,0,6)=="SELECT") {
return $stmt->fetchAll(PDO::FETCH_ASSOC);
} else {
return $stmt->rowCount();
}
}
Любые идеи?
глобальные $ db также должны быть определены в вашей функции. –
«Я думал, что это может сработать, но это не так» - пожалуйста, опишите, что произошло, т. Е. Эффект или сообщение об ошибке. –