У меня есть веб-приложение, которое запрашивает базу данных Oracle для идентификаторов, которые не имеют X, Y, я использую Jquery и PHP API,
Я передаю список идентификаторов в PHP для запроса к базе данных и возвращаю больше информации о записях, чтобы я мог геокодировать их.
По какой-то причине мой код пропускает первую и последнюю запись и возвращает только 7 из 9.
В SQL Developer мой запрос SQL возвращает 9 записей, что является правильным.
Мой JavaScript, My Array (theIDS) имеет 9 записей IDS
что я выбираю, это то же самое, что я использовал в SQL Developer.
Моя страница PHP обрабатывает массив и возвращает 7 из 9. Пропускает первый и последний.
В SQL Developer мой запрос SQL возвращает 9 записей, что является правильным.
SELECT ID, M_ADD1,M_CITY,M_STATE FROM CI_Data
WHERE ID IN
('1129','135','158','306','325','397','630','755','776');
Мой код JavaScript:
var theIDS = ["1129", "135", "158", "306", "325", "397", "630", "755", "776"];
var phpIDS = theIDS.join();
// My AJAX call to the PHP to pass the array and return the records.
$.ajax({ url : "forgeocode.php",
type : 'POST',
data : {'data': JSON.stringify(phpIDS)},
success : function(result){
console.log(result.length + " Records");
console.log(result);
for (var i = 0; i < result.length; i++) {
console.log(result[i][0]+ " ID Number");
console.log(result[i][1]);
console.log(i);
}
}
});
Моя PHP-страница, которая получает POST и запрашивает записи
$db = new PDO('oci:dbname=//myDBName:1521/infrastructuregisdev', 'Acct', 'Pwd');;
$arrData= $_POST['data'];
$arr = explode(",",$arrData);
$in = str_repeat('?,', count($arr) - 1) . '?';
$sql = "SELECT ID, M_ADD1,M_CITY,M_STATE FROM CIGIS.CI_DATA WHERE ID IN ($in)";
$stm = $db->prepare($sql);
$stm->execute($arr);
$data = $stm->fetchAll();
header('content-type: application/json');
echo json_encode($data);
Мне нужны все 9 записей, но я не уверен, что это страница PHP с использованием PDO. Почему пропускается первая и последняя запись?