注意,我是一个相对新手,并使用一本书来学习PHP和Mysql遇到了问题。
在名为“zips”的数据库中,有一个名为“zip_codes”的现有表,我使用此代码在mysql中成功添加了一个名为stores的表
CREATE TABLE stores (
store_id SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(60) NOT NULL,
address1 VARCHAR(100) NOT NULL,
address2 VARCHAR(100) default NULL,
zip_code INT(5) UNSIGNED ZEROFILL NOT NULL,
phone VARCHAR(15) NOT NULL,
PRIMARY KEY (store_id),
KEY (zip_code)
);
之后,我将下面15行左右的数据插入到表格中,但在我尝试过的无数次中,似乎只是冻结了一些东西。例如,命令行只显示'>
而不是给我通常的行受影响的输出,而不能再输入SQL,甚至无法退出。
所以我手动关闭命令行并再次打开它并尝试相同的结果。为了变化,我还尝试输入一行数据(15的整数)但得到了相同的结果。
有谁知道发生了什么?
INSERT INTO stores (name, address1, address2, zip_code, phone) VALUES
(‘Ray''s Shop', ‘49 Main Street', NULL, ‘63939', ‘(123) 456-7890'),
(‘Little Lulu''s', ‘12904 Rockville Pike', ‘#310', ‘10580', ‘(123) 654- 7890'),
(‘The Store Store', ‘8200 Leesburg Pike', NULL, ‘02461', ‘(123) 456- 8989'),
(‘Smart Shop', ‘9 Commercial Way', NULL, ‘02141', ‘(123) 555-7890'),
(‘Megastore', ‘34 Suburban View', NULL, ‘31066', ‘(555) 456-7890'),
(‘Chain Chain Chain', ‘8th & Eastwood', NULL, ‘80726', ‘(123) 808-7890'),
(‘Kiosk', ‘St. Charles Towncenter', ‘3890 Crain Highway', ‘63384', ‘(123) 888-4444'),
(‘Another Place', ‘1600 Pennsylvania Avenue', NULL, ‘05491', ‘(111) 456- 7890'),
(‘Fishmonger''s Heaven', ‘Pier 9', NULL, ‘53571', ‘(123) 000-7890'),
(‘Hoo New', ‘576b Little River Turnpike', NULL, ‘08098', ‘(123) 456-0000'),
(‘Vamps ‘'R'' Us', ‘Our Location', ‘Atwood Mall', ‘02062', ‘(222) 456- 7890'),
(‘Five and Dime', ‘9 Constitution Avenue', NULL, ‘73503', ‘(123) 446- 7890'),
(‘A & P', ‘890 North Broadway', NULL, ‘85329', ‘(123) 456-2323'),
(‘Spend Money Here', ‘1209 Columbia Pike', NULL, ‘10583', ‘(321) 456- 7890');
答案 0 :(得分:1)
问题似乎与您的引号有关 - 它们不匹配。您应该将字符串放在单引号'
或双引号"
中(相同的开始和结束标记)。
INSERT INTO stores (name, address1, address2, zip_code, phone) VALUES
("Ray's Shop", '49 Main Street', NULL, '63939', '(123) 456-7890');
......等等。
mysql命令行上的>
提示符表明它正在等待进一步的输入。在实践中,我发现这通常发生在我省略结尾分号时。但是,如果解释器认为你正在输入一个字符串,那么它将假设你的分号是该字符串的一部分,并且很高兴等你完成。
答案 1 :(得分:1)
使用mysql_real_escape_string()功能,例如以下示例
$query = sprintf("INSERT INTO product_description (language_id,name) VALUES ( '1','%s') ",mysql_real_escape_string($product_name));
mysql_query($query) or die(mysql_error());
答案 2 :(得分:0)
我试过你在phpmyadmin的代码,那里有些错误。试试这个:
INSERT INTO `stores` (`store_id`, `name`, `address1`, `address2`, `zip_code`, `phone`)
VALUES (NULL, "Ray's Shop", '49 Main Street', NULL, '63939', '(123) 456-7890');