[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Создание таблиц - PHP + SQL. Что не так?
Страницы: 1, 2
Insonicum
Вот не получается создать в БД таблицы. Создал два файла: первый называется connect.php
- соединяется с БД, а второй файл - create.php - создаёт таблицы в БД.

Так вот, проблема в том, что никаких ошибок не выводит, а таблицы в БД не создаёт. почему?

Ниже листинг (connect.php):
PHP
$link = mysql_connect('localhost', 'root', '','rpf');
if (!$link) {
die(
'Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);


и второй (create.php):
PHP
//подключаемся к базе данных rpf
include_once 'connect.php';
$create = "use rpf;
drop table if exists users;
create table users (
user_id integer not null auto_increment,
login char(20) not null,
password char(40) not null,
mail char(50) not null,
comment varchar(220),
primary key (user_id)
);"


Подскажите плиз, что не так?
pas
Ну например, Вы в скрипте connect.php открываете соединение и сразу же его закрываете...

Далее:
1. Необходимо выбрать свою базу данных
PHP
if (!mysql_select_db("rpf")) exit("Error ".mysql_errno()." : ".mysql_error()." \n");

2.Затем выполняете свой запрос по созданию таблиц c помощью mysql_query()

Insonicum
спасибо
Insonicum
ещё один вопрос. если я хочу создать таблицы в СУБД oracle какую я функцию использую?
Insonicum
PHP
$dbhost "localhost";
$dbuser "root";
$dbpass "";
$dbname "rpf"
$db mysql_pconnect($dbhost,$dbuser,$dbpass);
mysql_select_db("$dbname",$db); 
if (!
$db) {
    echo 
'ошибка соединения';
}
echo 
'Connected successfully';


PHP
//подключаемся к базе данных rpf
include_once 'connect2.php';
mysql_query("use rpf;
drop table if exists users;
create table users (
user_id integer not null auto_increment,
login char(20) not null,
password char(40) not null,
mail char(50) not null,
comment varchar(220),
primary key (user_id))
"
);


таблица не создаётся. где ошибка сейчас?
Insonicum
PHP
//подключаемся к базе данных rpf
include_once 'connect2.php';
mysql_query("use rpf;
drop table if exists users;
create table users (
user_id int not null auto_increment,
login char(20) not null,
password char(40) not null,
mail char(50) not null,
comment varchar(220),
primary key (user_id)
);
"
) or die(mysql_error());


такая ошибка:

Connected successfullyYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; drop table if exists users; create table users ( user_id in
PandoraBox2007
PHP
//подключаемся к базе данных rpf
include_once 'connect2.php';
mysql_query("DROP TABLE IF EXISTS `users`;");
mysql_query("CREATE TABLE `users` (
  `user_id` int(11) NOT NULL auto_increment,
  `login` char(20) character set utf8 NOT NULL,
  `password` char(40) character set utf8 NOT NULL,
  `mail` char(50) character set utf8 NOT NULL,
  `comment` varchar(220) character set utf8 NOT NULL,
  PRIMARY KEY  (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;"
);
pas
Насколько я знаю, несколько запросов в mysql_query() сделать нельзя, если я не прав, поправте меня..
поэтому попробуйте так:
PHP
mysql_query("drop table if exists `users`");
mysql_query("create table `users` 
(user_id integer not null auto_increment,
login char(20) not null,
password char(40) not null,
mail char(50) not null,
comment varchar(220),
primary key (user_id))"
)
Insonicum
благодарю) всё получилось.

что касается Oracle. есть какие идеи? кто-нибудь работал?
PandoraBox2007
SQL синтакс практически индинтичен у всех БД есть конечно собственные флаги под разные типы БД
Insonicum
а при подключении использовать вместо mysqli_connect - oracle_connect?
pas
Цитата
а при подключении использовать вместо mysqli_connect - oracle_connect?


Ну подробности можно найти в google.com, например:
http://phpclub.ru/detail/article/oracle
http://www.citforum.ru/database/oracle/oracle-p-p/

и др.

А вообще, есть такой абстрактный слой БД как PDO, в итоге можно использовать одни и те же запросы на разных БД, нужно только будет конструктор менять в зависимости от используемой БД
Insonicum
теперь такой вопрос. в БД не поступают записи. ниже полностью код трёх файлов:
1.php, 2.php, connect2.php. Об ошибке не сообщает.


1 файл - 1.php
Свернутый текст
Код
<?php
session_start();
$_SESSION['login'] = $_POST['login'];
$_SESSION['mail'] = $_POST['mail'];
?>
<html>
<head>
<title>
New project
</title>

<style type = "text/css">
<!...
<div id="frame">
<div id="banner">
<h2>Снежная <span>
страна</span></h2>
</div><!--end #banner-->
<p>...</p>
</div><!--end #frame-->
#banner {
width: 550px;
height: 561px;
overflow: hidden;
background-image: url(top.jpg);
background-position: 0;
background-repeat: no-repeat;
}
h2 {
margin: 0;
padding: 0;
font-family: Verdana, Arial;
margin-top: 325px;
margin-left: 25px;
padding-left:25px;
padding-bottom: 25px;
background-image: url(top.jpg);
background-position: bottom;
background-repeat: no-repeat;
}
h2 span {
font-size: .8em;
}
-->
</style>

</head>
<body background ="topfon.jpg">
<center><img src = "top.jpg" width = "1270" height = "200"></center>
<b>
<center><h4><font face = "Verdana" color = "white">Страница идентификации пользователя</font></h4>
</center>
<br>
<center>
<form name = "id" action = "2.php" method = "POST">
Введите своё имя
<input type = "text" name = "login" style="background-image:url(topfon4.jpg)">
<br>
<br>
<br>
<font color = "lightblue">
Дополнительная информация о себе
<br>
<textarea name = "info" rows = "10" cols = "50" style="background-image:url(778.jpg)"></textarea>
<br>
<input type = "submit" name = "a" value = "Добавить">
</form>
</font>
<br>
</center>
</b>
</body>
</html>



2 файл. 2.php
Свернутый текст
Код
<?php
session_start();
include_once 'connect2.php';
$_SESSION['login'] = $_POST['login'];
$_SESSION['mail'] = $_POST['mail'];
?>
<html>
<title>
New project
</title>
<body background ="topfon.jpg">
<center><img src = "top.jpg" width = "1270" height = "200"></center>
<b>
<center><h4><font face = "Verdana" color = "white">Страница приветствия</font></h4>
<?php
$text = $_POST['info'];
$name = $_SESSION['login'];
if (empty($_POST['login']) && empty($_POST['info']))
{
echo '<b>Вы не ввели свои данные!</b>';
}
elseif
(empty($_POST['login']) || empty($_POST['info']))
{
echo '<b>Вы не ввели свои данные!</b>';
}
else
{
echo "Ваше имя - <font color=white>$name!</font> <br>";
echo "Дополнительные данные о вас: <font color=white>$text</font>";
$sql = "insert into users values ('', $name, $text)";
mysql_query($sql);
}
?>
</center>
<br>
<center><form action = "3.php" method = "POST">
<input type = "text" name = "mail">
<input type = "submit" value = "Далее">
</form>
<font color = "pink">
Введите свой e-mail, чтобы получить уведомление
</font>
<br>
<br>
<a href = "1.php">Вернуться назад</a>
</center>
</b>
</body>
</html>



3 файл. connect2.php
Свернутый текст
Код
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "rpf";
$db = mysql_pconnect($dbhost,$dbuser,$dbpass);
mysql_select_db("$dbname",$db);
if (!$db) {
echo 'ошибка соединения';
}
echo '';
?>
Быстрый ответ:

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