Sql 不接受 php 中的值


Sql not accepting values in php

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客户端 - 相同,运行良好。