MYSQL: Upgrade des int-Typs auf bigint, Auswirkungen auf die PHP-Entwicklungssprache

不言
Freigeben: 2023-03-24 13:46:01
Original
2634 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit der Aktualisierung des int-Typs auf bigint und seinen Auswirkungen auf die PHP-Entwicklungssprache. Jetzt kann ich ihn mit Ihnen teilen 🎜>

Da das Unternehmen wächst, reicht das ursprüngliche unsigned int nicht mehr aus und muss auf unsigned bigint aktualisiert werden


Unterstützter MYSQL-Ganzzahlbereich:

https://dev. mysql.com/doc/refman/5.7/en/integer-types.html


Typ Speicherung Mindestwert Maximalwert
  (Bytes) (Signiert/Unsigniert) (Signiert/Unsigniert)
TINYINT 1 -128 127
    0 255
SMALLINT 2 -32768 32767
    0 65535
MEDIUMINT 3 -8388608 8388607
    0 16777215
INT 4 -2147483648 2147483647
    0 4294967295
BIGINT 8 -9223372036854775808 9223372036854775807
    0 18446744073709551615

Sie können sehen, dass die von bigint unterstützte Größenordnung sehr groß ist. Obwohl der MySQL-Feldtyp angepasst wurde, unterstützt unsere Entwicklungssprache ihn?


PHP5.6 64-Version:

PHPs int-Typbereich ist PHP_INT_MIN (verfügbar für PHP7) - PHP_INT_MAX

Unter x64-php beträgt der maximale Bereich von int beispielsweise: 9223372036854775807, entsprechend dem BIGINT-Typ von MYSQL

! Fenster sind immer 32-Bit und das folgende Verhalten weicht von den unten aufgeführten Punkten ab

! Vorzeichenlose Ganzzahlen

超过这个范围的int数,将会转化为float型。我们知道,表单提交或者从数据库取出的数据,是字符串类型,当我们用PHP进行运算的时候,以下几点需要注意的:

werden nicht unterstützt: http://php.net/manual/zh/sprache.types.integer.php

1) intval-Funktion, die Ausgabe dieser Funktion unterstützt nur den int-Typbereich. Wenn dieser Bereich überschritten wird, muss die Zeichenfolgendarstellung

$number = "9223372036854775900";
var_dump(intval($number));
//output,默认返回PHP_INT_MAX最大值
int(9223372036854775807)
Nach dem Login kopieren
< verwendet werden 🎜>



2) Der Int-Typ läuft als Array-Schlüsselwert über, sodass die Lösung benötigt wird um den Schlüssel in eine Zeichenfolge umzuwandeln

$arr = [];
$arr[9223372036854775900] = &#39;1&#39;;
var_dump($arr);
//output
array(1) {
  [-9223372036854775808]=>
  string(1) "1"
}
Nach dem Login kopieren



3) json_decode betrifft

Wenn die Daten den Bereich von int überschreiten, ist das analysierte Ergebnis der Typ Float

$str = &#39;[9223372036854775807,9223372036854775907]&#39;;
var_dump(json_decode($str));
//output
array(2) {
  [0]=>
  int(9223372036854775807)
  [1]=>
  float(9.2233720368548E+18)
}
Nach dem Login kopieren


, PHP kann kein vorzeichenloses Bigint



Das obige ist der detaillierte Inhalt vonMYSQL: Upgrade des int-Typs auf bigint, Auswirkungen auf die PHP-Entwicklungssprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!