|
|
|
| Можно ли с помощью php создать базу/таблицу которой еще нет?
Или же можно только работать с уже созданными базами/таблицами?
Я так думаю соедениться сервером MySQL а потом отправить SQL запрос но что то не как не получается.
Уже и код создания с phpmyadmin брал все равно что то глухо :(
я походу где то косячу .
Премер если можно если сие возможно осуществить. | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 00:54)
| | вот те пример :
<?php
$dbhost = "твой сервер";
$dbuser = "твойлогин";
$dbpass = "твой пароль";
$db = "твоя база данных";
---------------------------------------
function errormsg($msg)
{
printf("<h4><font color=\"#990000\">%s</font></h4>\n",$msg);
}
function connect()
{
global $dbhost,$dbuser,$dbpass,$db;
if(!($link = mysql_pconnect($dbhost,$dbuser,$dbpass)))
{errormsg(sprintf("Не могу соединиться с %s, с логин : %s и пароль : %s",$dbhost,$dbuser,$dbpass));
exit();
}
if(!($connect = mysql_select_db($db,$link)))
{errormsg(sprintf("Не могу выбрать базу данных: %s",$db));
errormsg(sprintf("Ошибка: %d %s",mysql_errno($link),mysql_error($link)));
exit();
}
}
function result($string)
{
global $result;
if(!($result = mysql_query($string)))
{
errormsg(sprintf("Ошибка: %s",$string));
errormsg(sprintf("Ошибка: %d %s",mysql_errno(),mysql_error()));
exit();
}
}
connect();
$create = "CREATE TABLE test (
test1 varchar(100) NOT NULL default '0',
test2 varchar(100) NOT NULL default '',
test3 varchar(100) NOT NULL default '',
test4 varchar(100) NOT NULL default '',
test5 varchar(100) NOT NULL default ''
) TYPE=MyISAM; ";
result($create);
?>
|
| |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 01:33)
| | Не могу выбрать базу данных: cou
Ошибка: 1049 Unknown database 'cou' | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 01:33)
| |
<?php
$dbhost = "твой сервер";
$dbuser = "твойлогин";
$dbpass = "твой пароль";
$db = "твоя база данных";
---------------------------------------
function errormsg($msg)
{
printf("<h4><font color=\"#990000\">%s</font></h4>\n",$msg);
}
function connect()
{
global $dbhost,$dbuser,$dbpass,$db;
if(!($link = mysql_pconnect($dbhost,$dbuser,$dbpass)))
{errormsg(sprintf("Не могу соединиться с %s, с логин : %s и пароль : %s",$dbhost,$dbuser,$dbpass));
exit();
}
if(!($connect = mysql_select_db($db,$link)))
{errormsg(sprintf("Не могу выбрать базу данных: %s",$db));
errormsg(sprintf("Ошибка: %d %s",mysql_errno($link),mysql_error($link)));
exit();
}
}
function result($string)
{
global $result;
if(!($result = mysql_query($string)))
{
errormsg(sprintf("Ошибка: %s",$string));
errormsg(sprintf("Ошибка: %d %s",mysql_errno(),mysql_error()));
exit();
}
}
connect();
// создание базыданных
$createdb = "create database 'cou'";
result($createdb);
// создание таблицы
$create = "CREATE TABLE test (
test1 varchar(100) NOT NULL default '0',
test2 varchar(100) NOT NULL default '',
test3 varchar(100) NOT NULL default '',
test4 varchar(100) NOT NULL default '',
test5 varchar(100) NOT NULL default ''
) TYPE=MyISAM; ";
result($create);
?>
|
| |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 01:56)
| | ! | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 01:57)
| | J.Lex
ЕСли база с таким именем есть то ошибка такая
Ошибка: 1064 You have an error in your SQL syntax near ''cou'' at line 1 | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 02:12)
| | если ты сомневаешься что такая или иная базаданных существует и ты хочешь создать новую с таким же именем то
используй
mysql_drob_db($db);
а потом функцию создания базыданных
----
попробуй убрать ковычки 'cou' на cou!
и еще сорри просто мой вариант уже идет с коннектом к существующей базе данных !
а так попробуй есть граф.программы для работы с бд и создания таблиц например | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 02:19)
| | для создания базы данных используй эту версию если хочешь
<?php
$dbhost = "твой сервер";
$dbuser = "твойлогин";
$dbpass = "твой пароль";
---------------------------------------
function errormsg($msg)
{
printf("<h4><font color=\"#990000\">%s</font></h4>\n",$msg);
}
function connect()
{
global $dbhost,$dbuser,$dbpass;
if(!($link = mysql_pconnect($dbhost,$dbuser,$dbpass)))
{errormsg(sprintf("Не могу соединиться с %s, с логин : %s и пароль : %s",$dbhost,$dbuser,$dbpass));
exit();
}
}
function result($string)
{
global $result;
if(!($result = mysql_query($string)))
{
errormsg(sprintf("Ошибка: %s",$string));
errormsg(sprintf("Ошибка: %d %s",mysql_errno(),mysql_error()));
exit();
}
}
connect();
$createdb = "create database cou";
result($createdb);
?>
| а для создания таблиц эту
<?php
$dbhost = "твой сервер";
$dbuser = "твойлогин";
$dbpass = "твой пароль";
$db = "твоя база данных";
---------------------------------------
function errormsg($msg)
{
printf("<h4><font color=\"#990000\">%s</font></h4>\n",$msg);
}
function connect()
{
global $dbhost,$dbuser,$dbpass,$db;
if(!($link = mysql_pconnect($dbhost,$dbuser,$dbpass)))
{errormsg(sprintf("Не могу соединиться с %s, с логин : %s и пароль : %s",$dbhost,$dbuser,$dbpass));
exit();
}
if(!($connect = mysql_select_db($db,$link)))
{errormsg(sprintf("Не могу выбрать базу данных: %s",$db));
errormsg(sprintf("Ошибка: %d %s",mysql_errno($link),mysql_error($link)));
exit();
}
}
function result($string)
{
global $result;
if(!($result = mysql_query($string)))
{
errormsg(sprintf("Ошибка: %s",$string));
errormsg(sprintf("Ошибка: %d %s",mysql_errno(),mysql_error()));
exit();
}
}
connect();
// создание таблицы
$create = "CREATE TABLE test (
test1 varchar(100) NOT NULL default '0',
test2 varchar(100) NOT NULL default '',
test3 varchar(100) NOT NULL default '',
test4 varchar(100) NOT NULL default '',
test5 varchar(100) NOT NULL default ''
) TYPE=MyISAM; ";
result($create);
?>
|
| |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 00:54)
| | Можно и то и другое.
>Я так думаю соедениться сервером MySQL а потом отправить SQL запрос но что то не как не получается.
Именно так. Где проверяете на локалхосте или на хостинге? Если на хостинге, то там это может быть просто запрещено. Создание таблиц редко запрещают (я не встречал), а вот создание баз данных почти везде запрещено.
>Премер если можно если сие возможно осуществить.
Так а зачем он. Если Вы код с phpmyadmin брали.
Вот я создал базу данных на локальной машине.
<?
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "root";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
$query="CREATE DATABASE 'test'";
mysql_query($query);
?>
|
А еще есть специальная функция для создания баз данных. (по ссылке)
http://www.softtime.ru/dic/id_dic=89&id_group=2 | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.09.2004 в 01:33)
| |
<?php
$link = mysql_pconnect("localhost", "mysql_user", "mysql_password")
or die("Could not connect: " . mysql_error());
if (mysql_create_db("my_db")) {
print ("Database created successfully\n");
} else {
printf ("Error creating database: %s\n", mysql_error());
}
?>
|
Вот этот код сработал на ура Спасибо!
Но почему код ниже неработает ?
я так тоже и пробывал не хочет (на денвере2 пробую может из-за этого?) | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 01:49)
| | а какой пример ты рассматриваешь?
все ли у тя правильно введено?
и существует ли база данных в которой ты пытаешься создать таблицу?
и какой у тя сервер базы данных локальный или хостинг?? | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 01:53)
| | первый пример автор: J.Lex
выдал ошибку
а пример от "дизайнера"
ошибок не дает и ни что не создает
пробую все на localhost | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 02:06)
| | >а пример от "дизайнера"
ошибок не дает и ни что не создает
Ну... это я для примера написал. Попробуй вот этот код.
<?
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbname = "ttt";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "Сервер базы данных не доступен" );
exit();
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) )
{
echo( "Базы данных с таким именем еще нет. Сейчас будем ее создавать." );
}
else
{
echo "База данных с таким именем уже существует";
exit();
}
$query="CREATE DATABASE $dbname";
if (mysql_query($query))
{
echo "База данных создана";
}
else
{
echo "Ошибка при создании базы данных";
}
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.09.2004 в 02:43)
| | Дизайнер (20.09.2004 в 02:43)
последний пример тоже на ура пошел
вопрос щас такой почему такой код работает
<?php
$a= "CREATE DATABASE testing; ";
mysql_query($a);?>
|
А такой нет
<?php
mysql_query(CREATE DATABASE testing; );?>
|
Вроде бы по логике одно и тоже | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 03:01)
| | а если ты исправишь
<?php
mysql_query(CREATE DATABASE testing; );?>
?>
|
на
<?php
mysql_query("CREATE DATABASE testing","сюда коннект к серверу");?>
|
то все заработает!:)))) | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 03:04)
| | Да заработало mysql_query("CREATE DATABASE testing" );
но ведь переменная $a уменя равнялась CREATE DATABASE testing
а не "CREATE DATABASE testing"
Вобщем суть уловил
всем спасибо!
<?php
mysql_query("CREATE DATABASE testing","сюда коннект к серверу");?>
|
сюда коннект к серверу - Это что такое? | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 03:11)
| | ну чтобы ты создал базу данных ты должен функции сообщить что ты законнектился к серверу
типо
<?php $link = mysql_connect("localhost","root","passw");
mysql_query("create database testing",$link);?>
|
| |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 03:19)
| | а вообще дам совет почитайка ты полный мануал по MySQL | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 03:23)
| | этот код создает базу counter в ней таблицу provaider с полями ...
<?php
$dblocation = "localhost";
$dbuser = "root";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</P>" );
exit();
}
$a = "counter";
$b = "create database counter";
$c = "CREATE TABLE 'provaider' (
'prov' TEXT NOT NULL ,
'gorod' TEXT NOT NULL ,
'ip1_1' INT NOT NULL ,
'ip1_2' INT NOT NULL ,
'ip1_3' INT NOT NULL ,
'ip1_4' INT NOT NULL ,
'ip2_1' INT NOT NULL ,
'ip2_2' INT NOT NULL ,
'ip2_3' INT NOT NULL ,
'ip2_4' INT NOT NULL
);";
mysql_query($b );
mysql_select_db($a , $dbcnx);
mysql_query($c );
?>
|
| |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 03:58)
| | убери ковычки это ошибка!
вот типо такого
$c = "CREATE TABLE provaider(
prov TEXT NOT NULL ,
gorod TEXT NOT NULL ,
ip1_1 INT NOT NULL ,
ip1_2 INT NOT NULL ,
ip1_3 INT NOT NULL ,
ip1_4 INT NOT NULL ,
ip2_1 INT NOT NULL ,
ip2_2 INT NOT NULL ,
ip2_3 INT NOT NULL ,
ip2_4 INT NOT NULL
)"; | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 13:53)
| | >убери ковычки это ошибка!
>
>вот типо такого
>$c = "CREATE TABLE provaider(
>prov TEXT NOT NULL ,
>gorod TEXT NOT NULL ,
>ip1_1 INT NOT NULL ,
>ip1_2 INT NOT NULL ,
>ip1_3 INT NOT NULL ,
>ip1_4 INT NOT NULL ,
>ip2_1 INT NOT NULL ,
>ip2_2 INT NOT NULL ,
>ip2_3 INT NOT NULL ,
>ip2_4 INT NOT NULL
>)";
Переменая равна строке она же должна заключатся в кавычки! | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 23:56)
| | не во всех случаях! | |
|
|
|
|
|
|
|
для: J.Lex
(21.09.2004 в 10:42)
| | Ну у меня работает именно с кавычками хотя без ковычек я еще не проверял. | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 03:04)
| | удалил сообщение!
Читаю маны MySQL | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.09.2004 в 01:33)
| | Дизайнер (20.09.2004 в 01:33)
<?php
$query="CREATE DATABASE 'test'"; => $query="CREATE DATABASE test; " ;
?>
|
Как всегда ошибка мелкая :)
В новой книге ей надо целую главу уделить :) | |
|
|
|
|
|
|
|
для: Zebra
(20.09.2004 в 02:38)
| | В смысле? Кавычек не надо? Или точка с запятой в конце?
Как сказать... Это совершенно рабочая строка. У меня работает именно так.
Это от настроек сервера видимо зависит. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.09.2004 в 02:48)
| | Дизайнер ты не понял он имел ввиду что первый твой пост был с $query="CREATE DATABASE 'test'"; ковычки это ошибка!
но а то что он тя поправляя сам допустил ошибку эт совсеми бывает!:)) | |
|
|
|
|
|
|
|
для: J.Lex
(20.09.2004 в 02:49)
| | Да... откуда это я кавычки взял и сказал, что у меня так и работает :)
Извиняюсь... - поздно уже :) | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(20.09.2004 в 03:01)
| | я знаете,че посоветую,все нужно делать в досе потому что тут и создал базу,в ней таблицу и все легким движением рукм проверил(ну в смысле,правильно ли,все поля прописал)а если в таком варианте код писать,то это очень громоздко получается...вместо 1 строчки в досе пишешь 15 на php ну конечно начинующему это полезно,я вообще,когда пишу че-нить,у меня есть вот такой файлик,его просто запускаешь,он автоматом создает и базу и таблицу...но потом я все равно по-привычке лезу в дос и все перепроверяю...
<?
//этот скрипт создает на хостинге необходимую базу данных и таблицу
//имя сервера базы данных на хостинге
$dblocation = "localhost";
//имя пользователя базы данных
$dbuser = "root";
//пароль
$dbpasswd = "";
//пытаемся соединиться с базой данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if(!$dbcnx)
{
echo("<p>В настоящий момент этот сервер базы данных не доступен,поэтому
корректное отображение сраницы невозможно. </p>");
exit();
}
//создаем базу данных
$query = "CREATE DATABASE guestbook;";
$ok = @mysql_query($query,$dbcnx);
if(!$ok)
{
echo("<p><b>Ошибка в запросе №1 : ".mysql_error()."</b></p>");
exit();
}
//выбираем только что созданную базу данных
if(!mysql_select_db("guestbook",$dbcnx))
{
echo("<p>База данных не создана,ошибка!</p>");
exit();
}
//создаем таблицу в нашей базе данных
$query1 = "CREATE TABLE guest (
id_msg int(8) NOT NULL auto_increment,
name tinytext,
city tinytext,
email tinytext,
url tinytext,
msg text,
answer text,
puttime datetime default NULL,
hide tinyint(1) default NULL,
PRIMARY KEY (id_msg)
) TYPE=MyISAM;";
$ok1 = @mysql_query($query1,$dbcnx);
if(!$ok1)
{
echo("<p><b>Ошибка в запросе №2 : ".mysql_error()."</b></p>");
exit();
}
if ($ok && $ok1)
{
echo("<center><b>Все успешно установлено и настроено,пользуйте на здоровье!!</b></center>");
$close = mysql_close($dbcnx);
}
?>
|
| |
|
|
|
|
|
|
|
для: LimP
(20.09.2004 в 20:20)
| | знаешь дос не дос но если так судить граф.программы для работы с MYSQL лучше чем дос!
ну а на хостинге с консолью ты не поработаешь! | |
|
|
|
|
|
|
|
для: LimP
(20.09.2004 в 20:20)
| | Я по началу тоже предпочитал консоль, потом обленился :))) и стал проектировать базу в phpMyAdmin - удобно, время экономится...
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=189 | |
|
|
|
|
|
|
|
для: cheops
(20.09.2004 в 20:59)
| | не буду спорить,так как я еще не связывался с phpMyAdmin ,но чую,скоро прийдется... | |
|
|
|