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 中删除了引号)
那么为什么第一个说它成功但没有放任何东西,而第二个说它失败了,但它按照我想要的方式插入了它?
我认为,传入的数据有一些东西。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客户端 - 相同,运行良好。