Необходимо выполнить запрос к базе данных MySQL, чтобы найти указанный c набор записей. Затем создайте некоторое время l oop для отправки записей в веб-службу. Код работает, но я нашел несколько проблем.
Нужно ли устанавливать дополнительный массив, даже если mysqli_fetch_assoc
используется для хранения строк? Синтаксис $array = array();
и $array[] = $row;
, присутствующий в моем коде, не всегда возвращает все строки для больших наборов результатов, но, опуская их, он возвращает все строки, которые он должен.
Может кто-нибудь, пожалуйста, объясните мне это? Я нашел этот пример на другом форуме и просто хочу понять, почему строка снова была задана как массив, если mysqli_fetch_assoc
уже делает это? Или как правильно обеспечить, чтобы мой запрос возвращал каждую строку, а затем отправлял в веб-службу в то время как l oop
$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;
}
}';