[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка Warning: mysqli_query() expects parameter 1
Tuezov
Добрый вечер. 2ой день мучения с базой. Выдает

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in S:\home\test.ru\www\config.php on line 9

Вот Код

<?php

$DataBase = mysqli_connect("localhost", "test", "12345", "test");

function test()
{

$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);
if ($result)
{
$rows = mysqli_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$res=mysqli_fetch_assoc($result);
$base_url[$i] = $res["base_url"];
}
mysqli_free_result($result);
}
echo $base_url[0];

}
function get_site_base()
{

$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);
if ($result)
{
$rows = mysqli_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$res=mysqli_fetch_assoc($result);
$m_base_url[$i] = $res["base_url"];
}
mysqli_free_result($result);
}
$base_url = $m_base_url[0];
}
?>


Если внести $DataBase = mysqli_connect("localhost", "test", "12345", "test"); в конкретную функцию, то работает нормально. Но не могу же я при вызове каждой функции подключатся к базе. PS "Хотя сейчас так и делаю".
Помогите мне вынести подключения к базе отдельно от функций.



Спустя 8 минут, 35 секунд (6.12.2010 - 17:47) sergeiss написал(а):
Цитата (Tuezov @ 6.12.2010 - 18:38)
function test()
{

$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);

Там, где нужно, объяви коннект к базе глобальным

function test()
{

global $Database;

$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);

И кстати - цикл for тут не очень лучший вариант. Во многих случаях выборки из БД удобнее использовать цикл while().

PS. И не понятно, что ты делаешь в функциях: читаешь много данных, а возвращаешь из функции только чуть-чуть.

Спустя 6 минут, 46 секунд (6.12.2010 - 17:54) Tuezov написал(а):
Я сделал. Все равно не получилось.

<?php

$DataBase = mysqli_connect("localhost", "test", "illusions", "test");

function test()
{
global $Database;
$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);
if ($result)
{
$rows = mysqli_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$res=mysqli_fetch_assoc($result);
$base_url[$i] = $res["base_url"];
}
mysqli_free_result($result);
}
echo $base_url[0];

}
function get_site_base()
{
global $Database;
$Select = "SELECT base_url FROM base";
$result=mysqli_query($DataBase,$Select);
if ($result)
{
$rows = mysqli_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$res=mysqli_fetch_assoc($result);
$m_base_url[$i] = $res["base_url"];
}
mysqli_free_result($result);
}
$base_url = $m_base_url[0];
}

Спустя 11 минут, 2 секунды (6.12.2010 - 18:05) Tuezov написал(а):
Мне нужно просто 1 раз подключиться к базе данных и вытаскивать Select- ами из нее данные. Если кто знает, помогите разобраться пожалуйста.

Спустя 1 минута, 2 секунды (6.12.2010 - 18:06) Гость_Dimon написал(а):
global $Database;

Спустя 44 секунды (6.12.2010 - 18:07) sergeiss написал(а):
Ты думаешь, что я так и буду за тобой твой код заключать в тэги оформления на сайте? ;) Тут рядом с полем ввода есть кнопки для этих тэгов (PHP, SQL, HTML), которые позволяют сделать красивый подсвеченный код.

А где у тебя проверка, что подключение БД было успешным? Может быть, в этом проблема?

После коннекта проверь, что получилось:
var_dump( $Database );


И про циклы я сказал, а ты так и не сделал.
Цитата (Tuezov @ 6.12.2010 - 18:54)
{
$rows = mysqli_num_rows($result);
for ($i=0; $i<$rows; $i++)
{
$res=mysqli_fetch_assoc($result);
$base_url[$i] = $res["base_url"];
}
mysqli_free_result($result);
}

Вот этот код лучше заменить на

$base_url=array();
while( $res=mysqli_fetch_assoc($result) )
{
$base_url[$i] = $res["base_url"];
}

И насчет возвращаемых из функций значений все равно не понятно до сих пор....

PS. Гость_Dimon - ценное примечание :)

Спустя 8 минут, 22 секунды (6.12.2010 - 18:15) Гость_Dimon написал(а):
Цитата
PS. Гость_Dimon - ценное примечание :)

В смысле? :)
Может я ошибаюсь но
$Database !== $DataBase

Спустя 4 минуты, 30 секунд (6.12.2010 - 18:19) sergeiss написал(а):
Цитата (Гость_Dimon @ 6.12.2010 - 19:15)
Может я ошибаюсь но .....

А я про то и говорю, что ты верно подметил!!! Я вот не заметил, пока ты не сказал. И автор темы тоже только после твоей подсказки это заметил.

Спустя 16 часов, 51 минута, 57 секунд (7.12.2010 - 11:11) Tuezov написал(а):
Хорошо. Можете привести код в котором есть 2 Select к базе данные rows которые записываются в массив с 1 подключением к базе.

Пример

База - test
Таблица - hello
В Таблице hello 3 записиси hello1, hello2, hello3
--------------------------------------------------------
Таблица - poka
В Таблице poka 3 записиси poka1, poka2, poka3

Нада

Подключение к базе 1 раз

Функция 1
{
SELECT hello1, hello2, hello3 для hello
Масиив 1 = hello1; //Все содержимое Hello1
Масиив 2 = hello2; //Все содержимое Hello2
Масиив 3 = hello3; //Все содержимое Hello3
}

Функция 2
{
SELECT poka1, poka2, poka3 для poka
Масиив 1 = poka1; //Все содержимое poka1
Масиив 2 = poka2; //Все содержимое poka2
Масиив 3 = poka3; //Все содержимое poka3
}


_____________
Туезов А.В
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.