【问题标题】:Insert PHP LDAP results into MySQL将 PHP LDAP 结果插入 MySQL
【发布时间】:2016-11-17 15:13:19
【问题描述】:

我正在尝试将从 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;
}

【问题讨论】:

  • 您容易受到sql injection attacks 的攻击,需要显示这些“其他结果”的更多详细信息。
  • 这只是一个内部脚本,您能否建议您可能需要哪些其他部分?因为它是一个相当大的文件
  • 这个数组中有other results $attr 吗?
  • 是的,Newage 我把脚本从顶部拿了下来:samjlevy.com/mydap-v4

标签: php mysql mysqli insert ldap


【解决方案1】:

您可以尝试将每个结果都写在一个循环中。示例:

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;
    }
}

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

【讨论】:

  • 它似乎在第一行插入了 [无登录日期] 的负载,但没有抓住任何其他人
  • 我不知道你的阵列。这是使用循环的示例工作。如果你给你的数组,我可以得到更好的例子。
猜你喜欢
  • 2021-10-29
  • 1970-01-01
  • 2014-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多