gpt4 book ai didi

javascript - PHP 5.5 通过 PDO 到 SQL Server,如何将行内容传递回 JavaScript jQuery Ajax 调用

转载 作者:行者123 更新时间:2023-12-03 11:45:43 25 4
gpt4 key购买 nike

我正在开发一个项目,该项目在前端使用 jQuery Ajax,在后端使用 PHP 5.5.15 和 SQL Server 2014。我已经安装了 PHP 5.5 的驱动程序,以便与 http://robsphp.blogspot.co.uk/2012/06/unofficial-microsoft-sql-server-driver.html 中的 SQL Server 对话。 ,因为到目前为止,微软还没有为 PHP 5.5 和 5.6 提供驱动程序(已经过去一年多了,人们在提示,但是,回到正题)。

这是我在服务器端执行 PHP 代码的 Ajax 调用:

$.ajax({type: 'post', 
async: false,
url: 'pairrequestsfromdb.php',
data: {
toemail: toEmail
},
success: function (result) {
alert(result);
}
}
);

从这个 Angular 来看,这效果很好。现在,PHP 代码连接到 SQL Server 数据库并查询它以获取一些信息。如果 PHP SQL 查询的结果恰好包含一行,我想以任何可能的形式将该行的内容返回给 JavaScript,以便我可以在那里使用它。这是 PHP 代码:

$serverName = "WIN-LV4K7BSUPJO";

try

{


$conn = new PDO("sqlsrv:server=$serverName;Database=myDB", "myUser", "myPass");

$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$setDB = $conn->prepare("USE [myDB]");

$setDB->Execute();


$tsql = "SELECT [col1],[col2],[col3] FROM [dbo].[Table] WHERE col3 = ?";
$params = array($myParam);
$checkPairRequests = $conn->prepare($tsql);
$checkPairRequests->execute($params);
$pairrequests = $checkPairRequests->fetchAll(PDO::FETCH_ASSOC);

$requestCount = count($pairrequests);

if ($requestCount > 1)
{
die("BAD BAD BAD");
}
else if ($requestCount == 0)
{
echo "no requests, sign up as pre-request";
}
else if ($requestCount == 1)
{
// there is exactly one request in the database, all is ok, give ajax the entire row back

echo $pairrequests;

}

基本上,我按顺序使用 prepareexecutefetchAll 来获取结果。现在,我的问题是,如何以某种可用的形式(例如键值字符串对,甚至只是值字符串对)将这个似乎存储在数组中的结果返回给 JavaScript?

起初我只是尝试

echo $pairrequests;

其中 $pairrequests 是 FetchAll 查询的结果。但是,当我这样做时,我没有得到实际内容,我得到的是:

enter image description here

我的下一个方法是查看数组中的各个项目是否是字符串,所以我这样做了:

$row = "";
foreach ($pairrequests as $column)
{
$row = $row . $column;
}
echo $row;

但是,这会产生类似的错误。那么,有谁知道如何获取结果行的内容并将其传递回 JavaScript,无论是字符串形式还是其他形式?

感谢您的帮助,

致以诚挚的问候,

克里斯

最佳答案

在 PHP 中,使用 json_encode()对您的记录进行编码。

echo json_encode($pairrequests);

在 JS 中,将 $.ajax() 调用的 dataType 设置为 "json" 以及 的参数success 回调将是一个 Javascript 对象,其中包含您记录中的数据:

success: function (records) {
alert(records[0].col1 + records[0].col2 + [...]);
}

关于javascript - PHP 5.5 通过 PDO 到 SQL Server,如何将行内容传递回 JavaScript jQuery Ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26061178/

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