|
|
|
| Есть скрипт :
<?php
/*HEADER*/
include("conf.php");
?>
<?php
$dbconnect1= @mysql_connect($dblocation,$dbuser,$dbpsw) or
die ("<p>В данный момент сервера MySQL недоступны. Сообщите об этом администратору портала</p>");
if ($dbconnect1)
{
echo("<p>Соединение с сервером MySQL прошло успешно.</p>");
}
//СЛЕДУЮЩИЕ СТРОКИ НЕ НУЖНЫ
/*$selectdb = mysql_select_db($dbname, $dbconnect);
mysql_select_db($dbname, $dbconnect1);
$sql = 'SELECT * FROM '.$sbname;
if (!@ mysql_select_db($dbname, $dbconnect1))
{
echo ("Корректное отображение базы данных невозможно.");
}*/
//Следующие строки должны создавать базу данных testing и вводить данные в созданную
//таблицу, но они этого не далеют, хотя и пишут что всё хорошо то бишь база
//Создание базы данных testing успешно завершено
$sql = 'create database testing;'
. ' use testing;'
. ' CREATE TABLE `test` ('
. ' `name` int(11) NOT NULL auto_increment,'
. ' `passw` text NOT NULL,'
. ' `url` text NOT NULL,'
. ' PRIMARY KEY (`name`)'
. ' ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;'
. ' ';
/*$createdatabase = ($dbconnect1);
if (!@ $createdatabase)
{
echo ("БАЗА ДАННЫХ и ТАБЛИЦЫ НЕ СОЗДАНЫ");
}
else
echo ("БАЗА ДАННЫХ и ТАБЛИЦЫ СОЗДАНЫ");
*/
if (!@ $sql)
{
echo ("<p>Не удалось создать базу данных ".$dbname."</p>");
}
else
echo ("<p>Создание базы данных ".$dbname." успешно завершено</p>");
?>
|
и есть файл конфига
<?php
$dblocation = "localhost";
$dbname= "testing";
$dbuser= "root";
$dbpsw= "";
$dbconnect= @mysql_connect($dblocation,$dbuser,dbpsw);
?>
|
Скрипт должен создавать базу данных и вносить в неё заданные таблицы с заданными свойствами и etc.
Пишет что всё создано, но в phpMyadmin всй пусто.
Юзаю последнюю версию denwer дабы не лазить в множестве непонятных мне настроек apache и mySQL.
ВОПРОС:Где ошибка? | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 12:07)
| | ты просто задаёшь переменную $sql и всё. Она несет в себе текст запроса и не более. её ещё нужно обработать функцией mysql_query() - эта функция отправляет твой запрос к БД. Повнимательнее прочитай мануал..
if (!@mysql_query($sql))
{
echo ("<p>Не удалось создать базу данных ".$dbname."</p>");
}
else
echo ("<p>Создание базы данных ".$dbname." успешно завершено</p>");
}
|
| |
|
|
|
|
|
|
|
для: NIK
(19.11.2006 в 12:18)
| | Про отправление запроса - это я понял. Но скрипт всё равно не работает. | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 12:39)
| | 1) Уберите все символы @ - их выставляют только когда скрипт отлажен
2) Добавьте сообщение об выводе ошибок
<?php
if (!mysql_query($sql))
{
echo ("<p>Не удалось создать базу данных ".$dbname."</p>".mysql_error());
}
else
echo ("<p>Создание базы данных ".$dbname." успешно завершено</p>");
}
?>
|
Что теперь выводит скрипт? | |
|
|
|
|
|
|
|
для: cheops
(19.11.2006 в 12:48)
| | аналогично - "Не удалось создать базу данных testing" | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 13:04)
| | Я подумал - может быть ошибка заключается в неправильном запросе к MySQL? Может быть там ошибка?
$sql = 'create database testing;'
. ' use testing;'
. ' CREATE TABLE `test` ('
. ' `id` int(11) NOT NULL auto_increment,'
. ' `l_name` text NOT NULL,'
. ' `l_adres` text NOT NULL,'
. ' PRIMARY KEY (`id`)'
. ' ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;'
. ' ';
|
Правда вроде бы ошибок нет....
Скрипт php был создан как раз с помощью PhpMyAdmin. | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 13:07)
| | И туда же вопрос: почему невозможно использование функции mysql_create_db? Или как её правильно использовать? вот мой пример:
<?php
//Создаём базу данных
$_create_db = mysql_create_db($dbname);
//Проверяем выполнение условия, что база данных создана.
if (!$_create_db)
{
echo("<p align='center' style='color:red'>База данных не создана. Ошибка".mysql_error."</p>");
}
else
echo("<p align='center' style='color:red'>База данных создана.</p>");
?>
|
или
<?php
$_create_db = mysql_create_db($dbname);
if ($_create_db)
{
echo("<p align='center' style='color:red'>База данных создана.</p>");
}
else
echo("<p align='center' style='color:red'>База данных не создана. Ошибка".mysql_error."</p>");
?>
|
Все равно - и в том и в другом случае выводится ошибка вида:
Fatal error: Call to undefined function mysql_create_db() in z:\home\test\www\data.php on line 14
то есть
Фатальная ошибка: Обрашение к неопределённой функции mysql_create_db()
|
Не пойму, как она может быть неопределённой, есль в мануале черным по серому написано -
mysql_create_db - создаёт базу данных MySQL(правда эта функция НИ РАЗУ не употреблялась в мануале:-()
ЗЫ Различия между 1-ым и 2-ым скриптом: в условии проверяются 1-если база данных не создана, во 2-ом - если база данных успешно создана. | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 13:40)
| | Проблема была решена следующим образом
1 - был создан новый скрипт вида:
<?php
include('conf.php');
?>
<?php
//Открываем соединение с сервером MySQL
$_connect = mysql_connect($dblocation,$dbuser,$dbpsw) or die
//Ввыводим сообщение в случае недоступности сервера MySQL
("<p align='center'> Извините, но в данный момент сервер <p color='red'>MySQL</p> недоступен.</p><p>Возможна ошибка MySQL: <i>".mysql_error."</i></p>");
if ($_connect)
{
echo ("<p align='center'>Соединение установлено.</p>");
}
/*
//Создаём базу данных
$_create_db = mysql_create_db($dbname);
//Проверяем выполнение условия, что база данных создана.
if (!$_create_db)
{
echo("<p align='center' style='color:red'>База данных не создана. Ошибка".mysql_error."</p>");
}
else
echo("<p align='center' style='color:red'>База данных создана.</p>");
//Завершаем соединение*/
//Создаём базу данных через запрос к SQL
$createdb_ = "CREATE DATABASE testing;";
$_use ="USE testing;";
$into = "CREATE TABLE `test` (
`name` int( 11 ) NOT NULL AUTO_INCREMENT ,
`passw` text NOT NULL ,
`url` text NOT NULL ,
PRIMARY KEY ( `name` )
) ENGINE = MYISAM DEFAULT CHARSET = cp1251 AUTO_INCREMENT =5;";
if((mysql_query($createdb_)))
{
echo("<p align='center' style='color:red'>База данных успешно создана.</p>");
}
else
echo ("<p align='center' style='color:red'>База данных не создана. Возможна ошибка: ".mysql_error()."</p>");
if((mysql_query($_use)))
{
echo("<p align='center' style='color:red'>База данных функционирует.</p>");
}
else
echo ("<p align='center' style='color:red'>База данных не функционирует. Возможна ошибка: ".mysql_error()."</p>");
if((mysql_query($into)))
{
echo("<p align='center' style='color:red'>Обработка данных завершена.</p>");
}
else
echo ("<p align='center' style='color:red'>Обработка данных невозможна. Возможна ошибка: ".mysql_error()."</p>");
if(mysql_close($_connect))
{
echo("<p align='center' style='color:red'>Соедининие завершено.</p>");
}
else
echo("<p align='center' style='color:red'>Соединение не может быть завершено. Возможна ошибка выполнения скрипта</p>");
?>
|
Разборка скрипта:
1 - было создано соединение с сервером SQL
2 - информацию для создания базы данных, создания таблицы и вноса данных в таблицу я разбил на переменные
$createdb_ - создание базы данных
$_use - создание в ней таблицы
$into - внос данных в таблицу
Также были созданы условия в которых выполнялись запросы к базе данных с перечисленными выше переменными.
После этого мы закрыли соединение
:-) | |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 13:40)
| | >mysql_create_db
Эта функция устарела исключена, теперь базу данных следует создавать при помощи SQL-запроса
| |
|
|
|
|
|
|
|
для: #umBer.[XIII]
(19.11.2006 в 13:04)
| | >аналогично - "Не удалось создать базу данных testing"
А после этой строки ничего нет? | |
|
|
|