通过php向mysql插入一个新值

时间:2011-02-16 14:15:23

标签: php mysql

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.whatismyip.com/automation/n09230945.asp");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$current_new_ip = curl_exec($ch);
curl_close ($ch);
mysql_query("INSERT INTO ip_table VALUES ('1','".$current_new_ip."', '1')");

MySQL的:

CREATE TABLE ip_table (                                 
            id int(11) NOT NULL AUTO_INCREMENT,                   
            ip_number int(11) DEFAULT NULL,
            used int(11) DEFAULT NULL,                                
            PRIMARY KEY (id)
          )

实际上,ip是:56.78.123.90

然而这些php代码正在插入:5678

我想将ip插入56.78.123.90,我该怎么办?

3 个答案:

答案 0 :(得分:2)

ip_number列的类型更改为varchar(15) - 因为您的IP地址是字符串 - 而不是整数。

CREATE TABLE ip_table (                                 
        id int(11) NOT NULL AUTO_INCREMENT,                   
        ip_number varchar(15) DEFAULT NULL,
        used int(11) DEFAULT NULL,                                
        PRIMARY KEY (id)
      )

答案 1 :(得分:1)

ip_number必须是varchar(15),而不是整数;)

答案 2 :(得分:0)

  1. 请记住,IPv4(32位)将被IPv6(128位)取代,因此使用INT类型(32位长)可能会导致附近功能出现问题。
  2. 使用INET_ATON()INET_NTOA()函数将数字转换为文字