我在phpMyAdmin中使用Export生成了一个PHP脚本。当尝试从该脚本导入其他地方时,我遇到了各种错误。感谢这个网站,我设法将其修改为这个,并在出现错误之前进一步,但我无法找到这个帮助。
原始出口
-- phpMyAdmin SQL Dump
-- version 4.2.5
-- http://www.phpmyadmin.net
--
-- Host: localhost:3306
-- Generation Time: Feb 23, 2015 at 05:23 PM
-- Server version: 5.0.95-log
-- PHP Version: 5.5.14
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `graveyard`
--
-- --------------------------------------------------------
--
-- Table structure for table `admin`
--
CREATE TABLE IF NOT EXISTS `admin` (
`adminId` int(11) NOT NULL auto_increment,
`userName` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `admin`
--
INSERT INTO `admin` (`adminId`, `userName`, `password`) VALUES
(1, 'wardens', 'Bega&1120');
在查看各种问题后,我将其修改为
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `terrier`
--
-- --------------------------------------------------------
--
-- Table structure for table `admin`
--
CREATE TABLE IF NOT EXISTS `terrier`.`admin` (
`adminId` int(11) NOT NULL auto_increment,
`userName` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL
PRIMARY KEY (`adminId`))
--
-- Dumping data for table admin
--
INSERT INTO admin (`adminId`, `userName`, `password`) VALUES
(1, 'wardens', 'Bega&1120');
这会导致INSERT INTO命令,但会引发错误
#1064 - 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 '(`adminId`))
--
-- Dumping data for table admin
--
INSERT INTO admin (' at line 15
我怀疑这是一个问题,因为MySQL版本不同 - 或者更可能是我的新手状态。
答案 0 :(得分:3)
<强>更新强> OP获得语法错误的原因是因为在声明密码列之后遗漏了逗号:
CREATE TABLE IF NOT EXISTS `terrier`.`admin` (
`adminId` int(11) NOT NULL auto_increment,
`userName` varchar(50) NOT NULL,
`password` varchar(50) NOT NULL <-- should be a comma here
PRIMARY KEY (`adminId`))
关于插入自动增量领域的说明
您尝试插入自动递增字段adminId
。不要为此指定值,MySQL会自动处理它。
INSERT INTO admin (`userName`, `password`) VALUES ('wardens', 'Bega&1120');
如果您想在自动增量字段的INSERT
查询中明确放置值,则根据指定字段为NOT NULL
- ''
,{{{ 1}}或0
。 Here is the reference.
NULL
更新进一步测试(如@eggyal所建议)显示,无论指定的数据库引擎如何,任何值都可以插入到自动增量字段中。
答案 1 :(得分:-2)
这有效:
-- phpMyAdmin SQL Dump
-- version 4.2.5
-- http://www.phpmyadmin.net
--
-- Host: localhost:3306
-- Generation Time: Feb 23, 2015 at 05:23 PM
-- Server version: 5.0.95-log
-- PHP Version: 5.5.14
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Database: `graveyard`
--
-- --------------------------------------------------------
--
-- Table structure for table `admin`
--
CREATE TABLE IF NOT EXISTS `admin` (
adminId int(11) NOT NULL auto_increment,
userName varchar(50) NOT NULL,
password varchar(50) NOT NULL,
primary key (adminId)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `admin`
--
INSERT INTO `admin` (`adminId`, `userName`, `password`) VALUES
(1, 'wardens', 'Bega&1120')