MySQL插入语句奇怪行为

时间:2015-09-03 09:33:06

标签: php mysql insert

我正在尝试将一行插入到数据库中,该列的列是其他列的组合,以帮助进行搜索。这是我的PHP代码:

    $compose=$house." ".$street." ".$district." ".$posttown." ".$county." ".$postcode;
$sql=sprintf("INSERT INTO Address (House,Street,District,PostTown,County,PostCode,Active,Composite) VALUES ('%s','%s','%s','%s','%s','%s',%s,'%s')",
$house,
$street,
$district,
$posttown,  
$county,
$postcode,
$binactive,
$compose);

(我知道我应该使用准备好的语句,这是下一次重构的一部分)

语句执行时没有错误,但Composite列被评估为数字。也就是说,如果$ house以插入的数字开头,如果$ house是一个名称,则插入0。

正在正确连接$ compose。

该列绝对是varchar。这是表创建脚本:

CREATE TABLE `Address` (
`idAddress` int(11) NOT NULL AUTO_INCREMENT,
`House` varchar(45) NOT NULL,
`Street` varchar(45) NOT NULL,
`District` varchar(45) DEFAULT NULL,
`PostTown` varchar(45) NOT NULL,
`County` varchar(45) NOT NULL,
`PostCode` varchar(45) NOT NULL,
`Composite` varchar(1000) NOT NULL,
`Active` binary(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`idAddress`),
UNIQUE KEY `idAddress_UNIQUE` (`idAddress`)
) ENGINE=InnoDB AUTO_INCREMENT=46 DEFAULT CHARSET=latin1;

所以......我哪里错了?

0 个答案:

没有答案
相关问题