0
我是一名新手php/js程序員,學習如何使用php和MySQL更高效地完成任務。我正在通過將服務器IP存儲在數據庫中來開展個人項目(自學習練習)。網絡上的很多頁面都建議在MySQL中存儲IPv4地址的最佳方法是使用整數字段並轉換IPv4地址以存儲它。這不是問題,這很容易做到。將數組值轉換爲longtoip
但是我正在填充一個數據表,然後以數組的形式將信息拉回來填充每一行。當涉及數組時,我不知道如何通過longtoip將這些值轉換回可讀格式。你會在下面的輸出部分看到我遇到的問題,網上的大多數例子都沒有處理這種情況。
請注意我不關心其他代碼中的安全性,我知道它需要一些工作,但我會在稍後解決(對於那些意識到這種情況的人)。
輸入:
$name = $_REQUEST['name'];
$ipv4 = $_REQUEST['ipv4'];
$ipv6 = $_REQUEST['ipv6'];
$port = $_REQUEST['port'];
$username = $_REQUEST['username'];
$password =$_REQUEST['password'];
$ipv4 = ip2long($ipv4);
require 'conn.php';
$sql = "insert into servers(name,ipv4,ipv6,port,username,password) values('$name','$ipv4','$ipv6','$port','$username',$password)";
mysql_query($sql) or die(mysql_error());
//mysql_query($sql);
echo json_encode(array(
'id' => mysql_insert_id(),
'name' => $name,
'ipv4' => $ipv4,
'ipv6' => $ipv6,
'port' => $port,
'username' => $username,
'password' => $password
));
輸入 '192.168.1.1' 成爲IPv4域的結果產生的結果 '-1062731519' 一旦寫入到MySQL。
輸出:
<?php
require 'conn.php';
$rs = mysql_query('select * from servers');
$result = array();
while($row = mysql_fetch_object($rs)){
array_push($result, $row);
}
echo json_encode($result);
?>
關於如何解決這個一個任何簡單的方法是極大的讚賞。
謝謝。
它沒有工作,除了我在函數語法上犯了一個小錯誤,它實際上是'long2ip'。謝謝你這個容易理解的迴應:) – user1894814 2013-04-25 03:42:52