Как получить правильные данные из базы данных с помощью AJAX

В моем проекте я использую ajax для извлечения данных из БД. И я проверяю содержимое данных, я выбираю оповещение (valData) в функции успеха. Но не повезло, ничего не вернуть
Аякс. Я проверял

select contact from IDC WHERE id=5;

Работает нормально в строке mysql cmd.

Вот мой код JS:

var stNum = 5;
$.ajax({
dataType:'json',
type:"POST",
url:"get_ajax_csc.php",
data:{stNum:stNum},
success:function(data)
{
var valData = data;
alert(valData);
}
});

Вот код get_ajax_csc.php:

<?php
if(isset($_POST['stNum']))
{
include("DB.php");
$q=$_POST["stNum"];
$sql="select contact from IDC WHERE id='".$q."';";
$sel = $conn->query($sql);

$arr = $sel->fetch(PDO::FETCH_ASSOC);
echo $arr['contact'];
}

if(isset($_POST['htmlCnt']))
{
include("DB.php");
$htcnt=stripslashes(".$_POST['htmlCnt'].");
........
}
?>

Вот код DB.php:

<?php
session_start();
$pwd=$_SESSION['password'];
$user=$_SESSION['user'];

try
{
$conn = new PDO('mysql:host=x.x.x.x;port=3306;dbname=hpc',$user,$pwd);
}
catch (PDOException $e)
{
echo "account or pwd wrong <meta http-equiv='refresh' content='1;url=index.html'>";
exit;
}
$conn->setAttribute(PDO::ATTR_ORACLE_NULLS, true);
?>

В моем коде нет ничего плохого, но я не могу получить данные из БД

Я понятия не имею об ошибке, кто может мне помочь?

0

Решение

Данные, которые вы отправляете с сервера клиенту, не являются действительными данными json, как вы указали в ajax, что вы ожидаете данные json.

Также ваши запросы не совпадают:

SELECT contact from IDC WHERE id=5; // This is the correct query you run on the cmd line.$sql="select contact from IDC WHERE id='".$q."';"; // This is the one from your php

если вы внимательно посмотрите на запросы, первый идентификатор обрабатывается как целое число, а второй — как строка. Увидеть Когда использовать одинарные, двойные и обратные кавычки в MySQL

Кроме того, вы используете PDO, так что используйте готовые заявления.
Попробуйте следующий код:

<?php
if (isset($_POST['stNum'])) {
include("DB.php");

$q   = $_POST["stNum"];
$sql = "select contact from IDC WHERE id= ? ";

$sel = $conn->prepare($sql);
$sel->bindParam(1, $q, PDO::PARAM_INT);
$sel->execute();
$arr = $sel->fetchColumn(PDO::FETCH_ASSOC);
echo json_encode($arr['contact']); //send back json data to the client
}
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector