Итак, я пытаюсь заменить свои глобальные переменные, и я застрял в том, как это пройти.
Небольшой пример моего кода:
# index.php:
include "dbc.php";
echo cName(1);
# dbc.php:
try{
$connect = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset:UTF8", DB_USER, DB_PASS, $driver_options);
}
catch(PDOException $pe)
{
die('Could connect to the database because: ' .$pe->getMessage());
}
function cName($cID){
global $connect;
$sql = $connect->prepare("SELECT name FROM cocos WHERE id=:id");
$sql->bindValue(":id", $cID);
$sql->execute();
$sql = $sql->fetch();
return $sql["name"];
}
Как видите, я делаю глобальный $ connect внутри функции cName (). И то же самое я делаю со всеми своими другими функциями, что выглядит очень плохо.
Разве я не могу ничего сделать, чтобы этого не было? Он говорит неопределенную функцию, если у меня нет глобальной переменной.
Я знаю, что могу добавить параметр, cName ($ connect, 1)
Но для меня это выглядит так же небрежно, как и для других. А так как у меня много функций, мне всегда нужно будет включать дополнительный параметр для этого соединения.
Так, что я могу сделать с этим, не имея дополнительного параметра или каких-либо глобальных переменных?
Я подумал, что, возможно, вы могли бы создать одну функцию / класс / объект, который обрабатывает все сообщения с базой данных, но я не знаю, с чего начать и как это сделать?
Что-то вроде:
dbQuery ($ запроса);
но опять же, вы не можете указать bindValue (), и в некоторых случаях вам нужно связать более одного значения, чем в примере выше.
Очень надеюсь на решение для этого, спасибо вперед
Пожалуйста, задавайте в комментариях, если вопросы