Php 无论我做什么,相同的值都存储在MySQL表字段中
我有一个MySQL表,带有字段('ad_id') 我用PHP将变量存储在不同的字段中 其中一个字段是上面提到的“ad_id”字段,它反复存储相同的确切nr,而不管PHP文件中的“真实”名称是什么 示例:Php 无论我做什么,相同的值都存储在MySQL表字段中,php,sql,mysql,Php,Sql,Mysql,我有一个MySQL表,带有字段('ad_id') 我用PHP将变量存储在不同的字段中 其中一个字段是上面提到的“ad_id”字段,它反复存储相同的确切nr,而不管PHP文件中的“真实”名称是什么 示例:$ad_id=12345 当尝试存储此信息时,会存储数字11111。始终,无论我将$ad_id变量更改为什么 我甚至回显了$ad_id变量,它实际上是12345,但MySQL存储的值是11111 代码: 使用MySQL表信息更新: CREATE TABLE `cars_db` ( `id` i
$ad_id=12345代码>
当尝试存储此信息时,会存储数字11111。始终,无论我将$ad_id变量更改为什么
我甚至回显了$ad_id变量,它实际上是12345,但MySQL存储的值是11111
代码:
使用MySQL表信息更新:
CREATE TABLE `cars_db` (
`id` int(7) NOT NULL AUTO_INCREMENT,
`ad_id` int(13) NOT NULL,
`area` varchar(40) COLLATE utf8_swedish_ci NOT NULL,
`area_community` varchar(50) COLLATE utf8_swedish_ci NOT NULL,
`price` int(9) NOT NULL,
`year` int(4) NOT NULL,
`mileage` int(6) NOT NULL,
`gearbox` varchar(12) COLLATE utf8_swedish_ci NOT NULL,
`fuel` varchar(12) COLLATE utf8_swedish_ci NOT NULL,
`insert_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`poster_name` varchar(40) COLLATE utf8_swedish_ci NOT NULL,
`poster_email` varchar(50) COLLATE utf8_swedish_ci NOT NULL,
`poster_tel` varchar(20) COLLATE utf8_swedish_ci NOT NULL,
`poster_password` varchar(15) COLLATE utf8_swedish_ci NOT NULL,
`private_or_company` int(2) NOT NULL,
`headline` varchar(60) COLLATE utf8_swedish_ci NOT NULL,
`description` text COLLATE utf8_swedish_ci NOT NULL,
`salebuy` int(2) NOT NULL,
`total_pics` int(2) NOT NULL,
`changeable` int(1) NOT NULL,
`hide_tel` int(1) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=134 DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci
再次更新:
我试着设置$ad_id=012345678901(12位数字),但没有成功。同样的问题再次出现。但后来我试着设置$ad_id=555555,结果成功了,MySQL存储了这些信息。。。
我认为长度是个问题。
有最高限额吗?
是否有隐藏的小数我不知道。如果是的话,我怎样才能绕过它
更新字符串插入到:
一切看起来都很好。甚至$ad_id的值也可以,12位,但这不是MySQL中插入的值,因为这是不同的nr,只有10位
- AC
- STEREO
- VINTERDÄCK', 'Säljes', '0', '0', '0')
卡姆兰:你的号码太大了
如果你看一下mysql文档,它会说:
您应该生成一个较小的随机数,如果需要随机数,您可以使用MySQLRAND
卡姆兰你的号码太大了
如果你看一下mysql文档,它会说:
您应该生成一个较小的随机数,如果需要随机数,您可以使用MySQLRAND
数字668244234626超出整数的范围。它被截断为整数的最大值,即2147483647
如果在MySQL客户端中运行INSERT语句,则会得到以下结果:
Query OK, 1 row affected, 1 warning (0.00 sec)
然后,如果显示警告:
mysql> show warnings;
+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1264 | Out of range value for column 'ad_id' at row 1 |
+---------+------+------------------------------------------------+
我注意到您声明了ad_id INT(13)
。请注意,参数13对可以存储在整数中的值的范围没有影响。MySQL整数数据类型始终存储32位数字,并且您给出的值大于232
如果需要存储较大的值,应使用BIGINT
数字668244234626超出整数范围。它被截断为整数的最大值,即2147483647
如果在MySQL客户端中运行INSERT语句,则会得到以下结果:
Query OK, 1 row affected, 1 warning (0.00 sec)
然后,如果显示警告:
mysql> show warnings;
+---------+------+------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------+
| Warning | 1264 | Out of range value for column 'ad_id' at row 1 |
+---------+------+------------------------------------------------+
我注意到您声明了ad_id INT(13)
。请注意,参数13对可以存储在整数中的值的范围没有影响。MySQL整数数据类型始终存储32位数字,并且您给出的值大于232
如果需要存储较大的值,应使用BIGINT
发布插入/更新数据库的代码。我们无法不查看您的代码。您是否也可以在mysql查询工具中发布descripe cars\u db
的输出发布此查询:SHOW CREATE TABLE cars\u db
它将打印定义。我想知道您对ad\u id
@camran:谢谢,最后一位缺失,您在哪里设置$ad\u id
,而且您不需要引号,因为它是一个数字,即值($ad_id,
对,在您的echo语句发出时,它可能被设置为12345,但如果这不是紧靠此之前的行(或者如果存在未被考虑的并发性)$ad_id的价值可能不同。也就是说,看起来您的数据模型需要一些工作。我知道这可能是一个肮脏的原型,您可能想敲开它的大门(并且您可能没有很多这类事情的经验),但您的表结构看起来太大了。到目前为止,我在该数据库中看到至少3个潜在表通过关系连接在一起。发布插入/更新数据库的代码。我们无法不查看您的代码。您是否也可以在mysql查询工具中发布descripe cars\u db
的输出发布此查询:SHOW创建表cars\u db
它将打印定义。我想知道您对ad\u id
应用了什么样的约束@camran:谢谢,最后一位丢失了,您在哪里设置$ad\u id
,而且您不需要引号,因为它是一个数字,即值($ad_id,
对,在您的echo语句发出时,它可能被设置为12345,但如果这不是紧靠此之前的行(或者如果存在未被考虑的并发性)$ad_id的价值可能不同。也就是说,看起来您的数据模型需要一些工作。我知道这可能是一个肮脏的原型,您可能想敲开它的大门(并且您可能没有很多这类事情的经验),但您的表结构看起来太大了。到目前为止,我在该数据库中看到至少3个潜在表通过关系连接在一起。