需要在 MySQL 数据库上运行查询以查找特定的记录集。然后创建一个 while 循环将记录发送到 Web 服务。代码正在运行,但我发现了一些问题。
即使mysqli_fetch_assoc用于存储行,是否需要设置额外的数组?$array = array();我的代码中的语法$array[] = $row;并不总是返回较大结果集的所有行,但是当省略这些行时,它会返回它应该返回的所有行。
有人可以向我解释一下吗?mysqli_fetch_assoc我在另一个论坛上找到了这个示例,只是想了解如果已经这样做,为什么该行再次设置为数组?或者确保我的查询返回每一行然后在while循环中发送到Web服务的正确方法是什么
$query = mysqli_query($conn, "SELECT *
FROM `table`.`list`
WHERE `list`.`last_local_call_time` >= DATE_SUB(NOW(),INTERVAL 12 HOUR)
AND `list`.`list_id` = '5005'
AND `list`.`vendor_lead_code` = 'test'");
// set array
$array = array();
// look through query
while($row = mysqli_fetch_assoc($query)){
// add each row returned into an array
$array[] = $row;
//payload
$row['phone_number'] = preg_replace('/^27/', '0', $row['phone_number']);
$data_json = '{
"LeadDetails": [
{
"Attribute": "Phone",
"Value": "'.$row['phone_number'].'"
},
{
"Attribute": "SearchBy",
"Value": "Phone"
}
],
"Activity": {
"ActivityEvent": 201,
"Fields": [
{
"SchemaName": "Status",
"Value": "'.$row['status'].'"
}
]
}
//send payload to API
$curl_url = 'https://test.api.com';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_json))
);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
$curl_result = curl_exec($ch);
$curl_info = curl_getinfo($ch);
echo $curl_result;
//error checking
if (curl_error($ch)) {
$error_msg = curl_error($ch);
//echo $error_msg;
}
}';