Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция соединения с БД, не получается 
V
    Опции темы
tester3000
  Дата 11.11.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Недавно начил изучать PHP дошел до функций решил написать функцию соединения с БД

Код

// db.php
<?php

function connect($db_host = "localhost", $db_user = "test", $db_pass = "test")
{
    $db = mysqli_connect($db_host, $db_user, $db_pass);
    if (!$db) {
        die('Could not connect to database: ' . mysqli_error());
    }
  return $db; 
} 
          
?>


Вроде коннектится но когда подключаю этот код в другом скрипте и пробую создать БД она не создается 

Код

<?php


include 'db.php';

connect();

$sql = 'CREATE DATABASE tmp';
if (mysqli_query($sql, $db))
{
    echo "Database tmp created successfully" . "<BR>";
}
else
{
    echo 'Error creating database: ' . mysqli_error() . "\n";
}

echo "<BR>";


mysqli_close($db);
?>


В чем ошибка ?  smile 
PM MAIL   Вверх
skyboy
Дата 11.11.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(tester3000 @  11.11.2007,  11:04 Найти цитируемый пост)
пробую создать БД она не создается 

т.е. код выдает
Цитата

Error creating database: 
?
Так а ьныйдш_уккщк() что возвращает?
PM MAIL   Вверх
tester3000
  Дата 11.11.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Цитата(skyboy @ 11.11.2007,  12:31)
Цитата(tester3000 @  11.11.2007,  11:04 Найти цитируемый пост)
пробую создать БД она не создается 

т.е. код выдает
Цитата

Error creating database: 
?
Так а ьныйдш_уккщк() что возвращает?

да код выдает 
Код
Error creating database
 а mysqli_error() нечего не выдает 

PM MAIL   Вверх
skyboy
Дата 11.11.2007, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



а SELECT из information_schema возвращает что? или тоже - ошибка?
желательно указать версию хотя бы БД...
PM MAIL   Вверх
tester3000
  Дата 11.11.2007, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Цитата(skyboy @ 11.11.2007,  13:28)
а SELECT из information_schema возвращает что? или тоже - ошибка?
желательно указать версию хотя бы БД...

Поставил 
Код
error_reporting(E_ALL);
 вот что выдал:

Цитата


Notice: Undefined variable: db in C:\wamp\www\tmp\foo\cdb.php on line 15

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\wamp\www\tmp\foo\cdb.php on line 15

Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\tmp\foo\cdb.php on line 21
Error creating database:

Notice: Undefined variable: db in C:\wamp\www\tmp\foo\cdb.php on line 27

Warning: mysqli_close() expects parameter 1 to be mysqli, null given in C:\wamp\www\tmp\foo\cdb.php on line 27
 


Apache/2.2.4 (Win32)

PHP version : 5.2.4
 Loaded extensions :
bcmath, calendar, com_dotnet, ctype, session, filter, ftp, hash, iconv, json, odbc, pcre, Reflection, date, libxml, standard, tokenizer, zlib, SimpleXML, dom, SPL, wddx, xml, xmlreader, xmlwriter, apache2handler, mbstring, mysql, mysqli, PDO, pdo_sqlite, SQLite 

MySQL version : 5.0.45-community-nt


Цитата
information_schema
 это где ?  smile 
PM MAIL   Вверх
skyboy
Дата 11.11.2007, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



tester3000, ну, посмотри же в сообщение об ошибках!
Цитата

Undefined variable: db in C:\wamp\www\tmp\foo\cdb.php on line 15

Не обїявлена переменная $db. А ведь ты её в вызове 
Код

mysqli_query($sql, $db)

используешь! 
То, что ты объявлял в другом модуле(в твоем случае - db.php) не будет видно в коде, этот модуль использующий. Ты же это $db возвращаешь как результат вызова connect!
так что код должен не 
Код

connect();

а
Код

$db= connect();

По идее, после этого все должно работать. Да, и mysqli_error ожидает, что ты передашь её аргументом соединение, ошибки которого надо вывести:
Цитата

mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp\www\tmp\foo\cdb.php on line 21 //перевод: mysqli_error() ожидает 1 параметро, а 0 параметров передано в строке ....


Добавлено через 9 минут и 34 секунды
Цитата(tester3000 @  11.11.2007,  12:40 Найти цитируемый пост)
 это где ?

вообще, это не требуется уже, но для расирения кругозора:
Цитата(dev.mysql.com)

INFORMATION_SCHEMA is the information database, the place that stores information about all the other databases that the MySQL server maintains. Inside INFORMATION_SCHEMA there are several read-only tables. They are actually views, not base tables, so there are no files associated with them.

и перевод:
Цитата

INFORMATION_SCHEMA информационная БД,место, где хранится информация о всех БД, хранящихся на сервере MYSQL. В INFORMATION_SCHEMA содержаться несколько таблиц только для чтения. Практически, это не таблицы, а представления(VIEW), так что нет файлов, связанных с этими "таблицами".

исочник - dev.mysql.com

PM MAIL   Вверх
tester3000
  Дата 11.11.2007, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.11.2007

Репутация: нет
Всего: нет



Спасибо разобрался кстати одного 
Код
$db= connect();
 мало оказалось 
я еще перепутал синтаксис mysqli_query с mysql_query

Код

mysqli_query ( mysqli $link, string $query [, int $resultmode] )


Код

mysql_query ( string $query [, resource $link_identifier] )
  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0832 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.