2016-07-14 75 views
0

我試圖從LDAP查詢中插入數據到MySQL表中插入PHP的LDAP結果到MySQL

用下面的代碼我已經設法插入第一個結果但不能如何獲得其他人的鍛鍊。

$displayname = isset($attr['displayname'][0]) ? $attr['displayname'][0] : "[no name set]"; 
$lastlogon = isset($attr['lastlogon'][0]) ? $attr['lastlogon'][0] : "[No logon date]"; 
$lastlogon_date = date("Y-m-d H:i:s", $lastlogon/10000000-11644473600); 

$sql = "INSERT INTO data (id, name, logon) 
VALUES ('', '$displayname', '$lastlogon_date')"; 

if ($conn->query($sql)) { 
echo "Inserted logon date/time for $displayname "; 
} else { 
echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+0

你很容易受到[sql注入攻擊](http://bobby-tables.com)的影響,並且需要顯示這些「其他結果」的更多細節。 –

+0

它只是一個內部腳本,你能提出你可能需要的其他部分嗎?因爲它是一個相當大的文件 – Billo

+0

你有'其他結果'在這個數組'$ attr'? – newage

回答

0

您可以嘗試在循環中寫入每個結果。例如:

for ($i=0; $i < count($attr); $i++) { 
    $displayname = isset($attr['displayname'][$i]) ? $attr['displayname'][$i] : "[no name set]"; 
    $lastlogon = isset($attr['lastlogon'][$i]) ? $attr['lastlogon'][$i] : "[No logon date]"; 
    $lastlogon_date = date("Y-m-d H:i:s", $lastlogon/10000000-11644473600); 

    $sql = "INSERT INTO data (id, name, logon) 
    VALUES ('', '$displayname', '$lastlogon_date')"; 

    if ($conn->query($sql)) { 
    echo "Inserted logon date/time for $displayname "; 
    } else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
    } 
} 

或者您可以收集一個插入的所有值。

+0

它似乎在第一行插入了[沒有登錄日期]的負載,但沒有搶別人 – Billo

+0

我不知道你的陣列。這是一個循環的例子。如果你給你的數組,我可以得到更好的例子。 – newage

+0

我已經通過對每組值進行「foreach」來管理它 – Billo