DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   PHP (http://www.daniweb.com/forums/forum17.html)
-   -   query problem (delimiter?) (http://www.daniweb.com/forums/thread77249.html)

Anonymusius May 3rd, 2007 9:27 am
query problem (delimiter?)
 
I have a program which requires a database. So I made a file that could generate the sql to create it (I copied the sql from PHPmyadmin as reference). When I execute the sql I get the error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; USE `anonymusiusform`; -- ------------------------------------------------' at line 4
It's always on the first ; that the error occurs. If I execute it in PHPmyadmin it works and correctly creates the database. I think the problem lays with the 'delimiter'. I tried googling it but I didn't found anything to solve my problem. This is the sql my file generate“s:
--  -- Database: `anonymusiusform` --   CREATE DATABASE `anonymusiusform` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `anonymusiusform`;  -- --------------------------------------------------------  --  -- Table structure for table `enquete` --   CREATE TABLE IF NOT EXISTS `enquete` (   `id` int(5) NOT NULL auto_increment,   `ip` varchar(16) NOT NULL,   `host` varchar(50) NOT NULL,   `age` varchar(2) NOT NULL,   `name` varchar(50) NOT NULL,   `rank` varchar(8) NOT NULL,   `opmerking` text NOT NULL,   PRIMARY KEY  (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
Any help would be highly appreciated. Edit: The layout seems messed up, I don't get what's wrong. Sorry about it. It doesn't seems to recognize enters anymore.

nsstone May 4th, 2007 2:13 am
Re: query problem (delimiter?)
 
Hmmm.. how about removing the superfluous comment detritus ... try:

CREATE DATABASE `anonymusiusform`
DEFAULT CHARACTER SET latin1
COLLATE latin1_swedish_ci;
USE `anonymusiusform`;
CREATE TABLE IF NOT EXISTS `enquete` (
`id` int(5) NOT NULL auto_increment,
`ip` varchar(16) NOT NULL,
`host` varchar(50) NOT NULL,
`age` varchar(2) NOT NULL,
`name` varchar(50) NOT NULL,
`rank` varchar(8) NOT NULL,
`opmerking` text NOT NULL,
PRIMARY KEY (`id`) )
ENGINE=InnoDB
DEFAULT CHARSET=latin1
AUTO_INCREMENT=1 ;

Anonymusius May 4th, 2007 1:48 pm
Re: query problem (delimiter?)
 
I removed the comments (they were just for fun there, and with enters it actually looked more structured) and it didn't seem to work, still the same error. I google'd a few times and searched through the mysql documentation but I didn't found anything that solve's this. Any help is highly appreciated. Here is the query again, and this time better formatted :) :
-- 
-- Database: `anonymusiusform`
--

CREATE DATABASE `anonymusiusform` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `anonymusiusform`;

-- --------------------------------------------------------

--
-- Table structure for table `enquete`
--

CREATE TABLE IF NOT EXISTS `enquete` (
  `id` int(5) NOT NULL auto_increment,
  `ip` varchar(16) NOT NULL,
  `host` varchar(50) NOT NULL,
  `age` varchar(2) NOT NULL,
  `name` varchar(50) NOT NULL,
  `rank` varchar(8) NOT NULL,
  `opmerking` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
I traced the enter problem down to me not enabling javascript because the site is dogslow (for me) with javascript enabled. So again sorry for my previous post.

Anonymusius May 6th, 2007 7:45 am
Re: query problem (delimiter?)
 
I made it work, my solution is however not so pretty looking:
[php]$query = '--
-- Database: `anonymusiusform`
--

CREATE DATABASE `anonymusiusform` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE `anonymusiusform`;

-- --------------------------------------------------------

--
-- Table structure for table `enquete`
--

CREATE TABLE IF NOT EXISTS `enquete` (
`id` int(5) NOT NULL auto_increment,
`ip` varchar(16) NOT NULL,
`host` varchar(50) NOT NULL,
`age` varchar(2) NOT NULL,
`name` varchar(50) NOT NULL,
`rank` varchar(8) NOT NULL,
`opmerking` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;';
mysql_connect('localhost', 'username', 'password');

foreach(explode(';', $query) as $value)
{
if($value == ''){continue;}

mysql_query($value) or die(mysql_error());
}[/php]
It works now, I only use the application and it is only in the adminscreen so I will always be able to dump sql in case of a crash in phpmyadmin. If someone has a better solution please tell me.

dr4g May 6th, 2007 11:46 am
Re: query problem (delimiter?)
 
seems like you got it working then. if you have any more questions, don't hesitate to post!


All times are GMT -4. The time now is 7:30 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC