php
$dnumber = '9515551212';
$device_id = 'f3847010927038970110923';
设备是文本字段 phnum(我使用过bigint,text,varchar)都给出了相同的结果。
mysql_query("INSERT INTO devices(device, phnum) VALUES('$device_id', '$dnumber')");
上述查询为TRUE,但phnum中的值为空。
mysql_query("INSERT INTO devices(device, phnum) VALUES('$device_id', $dnumber)");
上面的查询是FALSE,但它仍然完美地插入记录!我也在“)”附近得到错误1064(我从$ dnumber中删除了引号)
那么为什么第一个说它成功了但没有把任何东西放在那里,而第二个说它失败了但它插入了我想要的那个?
答案 0 :(得分:0)
我认为,有一些传入数据。 SQL效果很好。
我从php尝试了这个查询:
$sql = "INSERT INTO test(device_id, phnum) VALUES('$device_id', '$dnumber')";
$res = mysql_query($sql);
对于具有以下结构的表:
CREATE TABLE `test` (
`phnum` int(30) unsigned NOT NULL AUTO_INCREMENT,
`device_id` varchar(256) NOT NULL DEFAULT '',
PRIMARY KEY (`phnum`)
) ENGINE=InnoDB AUTO_INCREMENT=4294967295 DEFAULT CHARSET=utf8;
没有任何警告,它运作良好。从SQL客户端 - 相同,运作良好。