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.

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 ;

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.

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.

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

This article has been dead for over six months. Start a new discussion instead.