Insonicum
9.07.2009 - 18:07
Вот не получается создать в БД таблицы. Создал два файла: первый называется 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) );" |
Подскажите плиз, что не так?
Ну например, Вы в скрипте connect.php открываете соединение и сразу же его закрываете...
Далее:
1. Необходимо выбрать свою базу данных
PHP |
if (!mysql_select_db("rpf")) exit("Error ".mysql_errno()." : ".mysql_error()." \n"); |
2.Затем выполняете свой запрос по созданию таблиц c помощью mysql_query()
Insonicum
9.07.2009 - 18:17
спасибо
Insonicum
9.07.2009 - 18:23
ещё один вопрос. если я хочу создать таблицы в СУБД oracle какую я функцию использую?
Insonicum
9.07.2009 - 18:33
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
9.07.2009 - 18:44
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
9.07.2009 - 18:47
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;"); |
Насколько я знаю, несколько запросов в 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
9.07.2009 - 18:53
благодарю) всё получилось.
что касается Oracle. есть какие идеи? кто-нибудь работал?
PandoraBox2007
9.07.2009 - 19:02
SQL синтакс практически индинтичен у всех БД есть конечно собственные флаги под разные типы БД
Insonicum
9.07.2009 - 19:10
а при подключении использовать вместо mysqli_connect - oracle_connect?
Цитата |
а при подключении использовать вместо mysqli_connect - oracle_connect? |
Ну подробности можно найти в google.com, например:
http://phpclub.ru/detail/article/oraclehttp://www.citforum.ru/database/oracle/oracle-p-p/и др.
А вообще, есть такой абстрактный слой БД как PDO, в итоге можно использовать одни и те же запросы на разных БД, нужно только будет конструктор менять в зависимости от используемой БД
Insonicum
9.07.2009 - 21:47
теперь такой вопрос. в БД не поступают записи. ниже полностью код трёх файлов:
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 ''; ?> |
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.