我将从代码开始:
$checkIpaddresses = $wpdb->get_results( $wpdb->prepare("SELECT affiliateID, source FROM am_ipaddress WHERE affiliateID = $affiliateID"));
foreach ($checkIpaddresses as $ipaddress) {
$ipSource = explode(",", $ipaddress->source);
}
$newIP = ",".$ipAddress;
array_push($newIP, $ipSource);
print_r($ipSource);
我在数据库中有一列,其中包含,
(逗号)分隔的IP地址列表。我希望能够从数据库中获取该列表,添加新的IP地址并使用新的IP地址列表更新列。
上面的代码给出了这个错误。 array_push() expects parameter 1 to be array
。
$ipAddress
的值为$_SERVER['REMOTE_ADDR'];
。
答案 0 :(得分:1)
首先,如果只返回一行,则不需要foreach
。
$ipSource = explode(",", $checkIpaddresses[0]->source); // Get the 1st row as an array
其次,您将新IP地址添加到阵列时过于复杂。
$ipSource[] = $ipAddress;
就是这样。现在$ipSource
数组包含新的IP地址。
(P.S。使用implode(',', $ipSource)
将数组转换为以逗号分隔的字符串)