gpt4 book ai didi

javascript - 如何使用ajax从数据库中获取正确的数据

转载 作者:行者123 更新时间:2023-11-29 18:26:28 25 4
gpt4 key购买 nike

在我的项目中,我使用ajax从数据库中获取数据。我测试数据内容,我在 success 函数中选择alert(valData)。但不幸的是,没有任何返回 Ajax 。我测试过

select contact from IDC WHERE id=5;

它在 mysql 命令行中工作正常。

这是我的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);
?>

我的代码似乎没有问题,但我无法从数据库获取数据

我不知道错误,谁可以帮助我?

最佳答案

您从服务器发送回客户端的数据不是有效的 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

如果仔细查看查询,第一个 id 被视为整数,第二个 id 被视为字符串。请参阅When to use single quotes, double quotes, and backticks in 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
}
?>

关于javascript - 如何使用ajax从数据库中获取正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46151360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com