Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Simpan IPv6 dalam database

rajutan lebih dekat, daripada binary(16) gunakan varbinary(16) sebagai user196009 dijawab dalam pertanyaan terkait. Ini bekerja untuk saya. Bagaimana?

Menyimpan IP:

<?php
  $query = "insert into stats(vis_ip, id_stat) values('" . inet_pton('66.102.7.104') . "', '1')"; // google's IP address
  // using a PDO wrapper. http://www.phpclasses.org/package/5206-PHP-Execute-database-queries-from-parameters-using-PDO.html
  include_once 'db.php';
  $c = new DB();
  $visit = $c->getResults($query); // stored as binary
?>

Mengambil IP:

<?php
  $query = "SELECT `vis_ip` FROM `stats` WHERE `id_stat`=1";
  // PDO wrapper
  include_once 'db.php';
  $c = new DB();
  $stats = $c->getRow($query);
  echo inet_ntop($stats->vis_ip); // outputs 66.102.7.104
?> 

Ini harus bekerja dengan alamat IPv6 (saya memiliki koneksi IPv4). Saya bukan ahli jadi saya belum tahu apakah panjang varbinary benar, tetapi bagaimana saya mengatakannya, itu berfungsi untuk saya.

Untuk memeriksa apakah 'Dukungan IPv6' diaktifkan di versi/host PHP Anda:

<?php
  phpinfo(INFO_GENERAL); // http://php.net/manual/es/function.phpinfo.php
?> 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peringatan:PDOStatement::execute():SQLSTATE[HY093]:Nomor parameter tidak valid:parameter tidak ditentukan di...filetext

  2. Hibernate - batasan kolom unik diabaikan

  3. Bagaimana Anda menggunakan BIGINT sebagai Kunci Utama Peningkatan Otomatis di Laravel 4

  4. Mimpi buruk database warisan MySQL terbaik

  5. MySQL:PILIH NILAI UNIK