gpt4 book ai didi

php - MySQL 数据类型在 PHPMyAdmin 中没有改变......?

转载 作者:行者123 更新时间:2023-11-29 07:01:13 25 4
gpt4 key购买 nike

好的,我正在做一个 php 大学项目,我必须让学生注册,提交他们的详细信息——名字、姓氏、电话号码、身份证号码等。

起初我使用 int 作为 id 号,但我不打算用它做任何数学运算,所以我将其更改为 varchar,但是在更改之后,我提交的所有示例仍然带有最大 int 值“2147483647 "当我将其指定为 varchar 时,为什么会发生这种情况,我该如何解决。

如果有助于表字段的排序规则都是latin1_swedish_ci。我不是 MySQL 专家,所以如果您需要任何其他信息来弄清这个问题的真相,请尽管询问。

编辑:我还将字段的值改回 bigint,它仍然在表中抛出 2147483647,即使我输入了 8888888888888(13 个字符),所以使用 varchar 或 bigint 我仍然得到 2147483647,我做错了什么?

更新:我在尝试更改字段的最大值时收到来自 phpmyadmin 的以下错误。

  SQL query:

ALTER TABLE `student` CHANGE `idno` `idno` BIGINT( 99999999999999 ) NOT NULL

MySQL said:

#1439 - Display width out of range for column 'idno' (max = 4294967295)

更新:删除 intval() 修复了这个问题

 $id_number=intval($_POST['id_number']);
$id_number=($_POST['id_number']);

最佳答案

不要使用 varchar 作为 ID,除非您确实需要在 ID(PK?)字段中使用字母。使用整数更快。也许 PHP 脚本试图将数据库的 varchar 更改为整数,因此将 ID 更改回 int

你真的需要bigint吗? Unsigned int 可能绰绰有余。 http://dev.mysql.com/doc/refman/5.0/en/integer-types.html

更新:如果您需要确保该值是一个整数,您应该检查它的数据类型。

if(is_int($my_value)){
//do the script
}
else{
//echo error message
}

如果值来自数据库(数据类型为整数的列),一切都应该没问题,但检查一下也无妨...

关于php - MySQL 数据类型在 PHPMyAdmin 中没有改变......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com