Создал config.php в нем прописал подключение к БД:
function connectToDB() {
global $link;
$link = mysqli_connect('localhost','root','','notepad');
return $link;
}
Прописал в index.php:
require_once 'config.php';
require_once 'functions.php';
Как теперь сделать, чтобы в function.php не подключаться каждый раз к БД, как у меня это сейчас прописано? То есть, к примеру, тут чтобы было так:
function saveTask($title,$description){
$sql = "INSERT INTO tasks (title, description) VALUE ('$title','$description')";
mysqli_query($link,$sql);
}
Переменная $link берется из config.php. Но в данный момент момент у меня не получается так сделать. Что не так указываю?
База: MySql. Язык: PHP
Можно попробовать вот так:
function connectToDB() {
static $link;
return !isset($link) ? $link = mysqli_connect('localhost','root','','notepad') : $link;
}
если коннекта не было установлено - он его создаст и запишет в переменную. если коннект уже был - оно просто возвратит его. И тогда далее если Вам где-то требуется коннект - то вызываете просто connectToDB()
Набросал схему, по которой вам надо будет действовать в ваших функциях. Скопируйте код целиком в отдельный файл, и посмотрите на его результат в браузере -- таким образом вам станет понятен его смысл :
connectToDB(); // Обязательный вызов ДО ф-ции saveTask()
echo saveTask(); // Выведет: connectToDB
function connectToDB() {
global $link;
$link = __FUNCTION__;
return $link;
}
function saveTask() {
global $link;
return $link;
}
Если правильно Вас понял, то функция saveTask должна выглядеть так:
function saveTask($title,$description){
$sql = "INSERT INTO tasks (title, description) VALUE ('$title','$description')";
mysqli_query(connectToDB(),$sql);
}
Переменной $link в вашем коде неоткуда взяться. А так connectToDB() вернёт как раз ту самую переменную $link
P.S. Сделайте var_dump($link) в saveTask()
Есть отдельно проверка формы обратной связи и проверка капчиКак вставить проверку капчи в код проверки формы? Вот код проверки формы обратной...