0

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.

3
Contributors
4
Replies
5
Views
10 Years
Discussion Span
Last Post by dr4g
0

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 ;

0

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.

0

I made it work, my solution is however not so pretty looking:

$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());
}

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.

0

seems like you got it working then. if you have any more questions, don't hesitate to post!

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.