2016-07-14 17 views
0

私は私が最初の結果を挿入するために管理しますができませんしました以下のコードを使用してMySQLのテーブルにLDAPクエリから挿入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; 
    } 
} 

または、1つのインサートのすべての値を収集できます。

+0

最初の行で[ログオン日なし]の負荷を挿入するようだが、そうではない他の人をつかむ – Billo

+0

私はあなたの配列について知らない。これはループを使った例です。あなたがあなたの配列を与えるなら、私はより良い例を得ることができます。 – newage

+0

私は値の各セットで "foreach"を実行することによってそれを管理しました – Billo