Sql不接受php中的值

时间:2013-09-13 23:14:25

标签: php mysql sql

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中删除了引号)

那么为什么第一个说它成功了但没有把任何东西放在那里,而第二个说它失败了但它插入了我想要的那个?

1 个答案:

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