public function create() {
echo $this->equipment->getCatId() . "<br/>";
echo $this->equipment->getName() . "<br/>";
echo $this->equipment->getYear() . "<br/>";
echo $this->equipment->getManufacturer() . "<br/>";
echo $this->equipment->getModel() . "<br/>";
echo $this->equipment->getPrice() . "<br/>";
echo $this->equipment->getLocation() . "<br/>";
echo $this->equipment->getCondition() . "<br/>";
echo $this->equipment->getStockNum() . "<br/>";
echo $this->equipment->getInformation() . "<br/>";
echo $this->equipment->getDescription() . "<br/><br/>";
$db = Connect::connect();
$current_time = date('y M d');
$query = "INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition,
stock_num, information, description, created, modified)
VALUES
({$this->equipment->getCatId()}, {$this->equipment->getName()}, {$this->equipment->getYear()},
{$this->equipment->getManufacturer()}, {$this->equipment->getModel()}, {$this->equipment->getPrice()},
{$this->equipment->getLocation()}, {$this->equipment->getCondition()}, {$this->equipment->getStockNum()},
{$this->equipment->getInformation()}, {$this->equipment->getDescription()}, '$current_time', '$current_time')";
$result = $db->query($query);
return $db->insert_id;
}
有什么想法吗?
提前致谢!
这是echo'ed查询
INSERT INTO设备(cat_id,名称,年份,制造商,型号,价格,位置,条件,stock_num,信息,描述,创建,修改)VALUES(1,'r',1,'sdf','sdf' ,'2','d','d','3','asdfasdfdf','df','10月10日','10月10日'')
MySQL正在提供:#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在'condition,stock_num,information,description,created,modified'附近使用正确的语法VALUES(1,'r'在第1行
id int(11)unsigned NO PRI NULL auto_increment
编辑删除cat_id int(11)unsigned NO NULL
编辑删除prod_name varchar(255)YES NULL
编辑删除prod_year varchar(10)YES NULL
编辑删除制造商varchar(255)YES NULL
编辑删除模型varchar(255)YES NULL
编辑删除价格varchar(10)YES NULL
编辑删除位置varchar(255)YES NULL
编辑删除条件varchar(25)YES NULL
编辑删除stock_num varchar(128)YES NULL
编辑删除信息文本YES NULL
编辑删除描述文本YES NULL
编辑删除创建的varchar(20)YES NULL
编辑删除已修改的varchar(20)YES NULL
查询:INSERT INTO设备(cat_id,prod_name,prod_year,制造商,型号,价格,位置,条件,stock_num,信息,描述,创建,修改)VALUES(1,'asdf','234','adf' ,'asdf','34','asdf','asdf','234','asdf','asdf','10月10日','5月10日'')
以下是来自PhpMyAdmin的SQL导出,以防有人想尝试重复此问题:http://pastie.org/954206
BLEHBLEHSDFOHSE - 显然,'条件'也是一个保留的词......扔进一些反叛,然后开始工作。
答案 0 :(得分:1)
YEAR是MySQL中的保留字。如果你要使用它,你将需要反击(即`year`
)
答案 1 :(得分:0)
假设位置,信息和描述是缺少字符串引号。
INSERT INTO equipment (cat_id, name, year, manufacturer, model, price, location, condition,
stock_num, information, description, created, modified)
VALUES
({$this->equipment->getCatId()}, {$this->equipment->getName()}, {$this->equipment->getYear()},
'{$this->equipment->getManufacturer()}', {$this->equipment->getModel()}, {$this->equipment->getPrice()},
'{$this->equipment->getLocation()}', {$this->equipment->getCondition()}, {$this->equipment->getStockNum()},
'{$this->equipment->getInformation()}', '{$this->equipment->getDescription()}', '$current_time', '$current_time')";
答案 2 :(得分:0)
Varchar,char和text字段需要在它们周围插入引号。回显SQL查询并检查是否发生了这种情况。
答案 3 :(得分:0)
据我所知,你的问题是年份字段,没有引号......
INSERT INTO设备(cat_id,name, 年,制造商,型号,价格, 位置,条件,stock_num, 信息,描述,创建, 修改)VALUES(1,'r', 1 ,'sdf', 'sdf','2','d','d','3', 'asdfasdfdf','df','2010年5月10日','10 5月10日')
这里,问题是cat_id带引号
查询:INSERT INTO设备(cat_id, 名称,年份,制造商,型号, 价格,位置,条件,stock_num, 信息,描述,创建, 修改)VALUES('1','asdf','234', 'adf','asdf','34','asdf','asdf', '234','asdf','asdf','5月10日', '10 5月10日')
答案 4 :(得分:0)
BLEHBLEHSDFOHSE - 显然,'条件'也是一个保留的词......扔进一些反叛,然后开始工作。
答案 5 :(得分:0)
停止使用mysql_query()并切换到mysqli和prepared statements,然后在SQL字符串中不需要所有那些钝的OOP。它会看起来更干净:
$query = 'INSERT INTO table (id,name,age) VALUES (?,?,?)';