0

php

 $dnumber = '9515551212';
 $device_id = 'f3847010927038970110923';  

device 是一个文本字段 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)");

上面的查询是假的,但它仍然完美地插入了记录!我还在“)”附近收到错误 1064(我从 $dnumber 中删除了引号)

那么为什么第一个说它成功但没有放任何东西,而第二个说它失败但它按照我的意愿插入了它?

4

1 回答 1

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 客户端 - 同样,效果很好。

于 2013-09-13T23:43:32.993 回答