gpt4 book ai didi

php - 外部存储过程的每一行的存储过程

转载 作者:可可西里 更新时间:2023-11-01 07:44:27 25 4
gpt4 key购买 nike

<分区>

我是存储过程的新手,正在使用 mysql。我正在 phpmyadmin 中创建程序。

我需要实现的是一个存储过程,它将返回一个表中的所有用户详细信息及其在链接表中的关联关系。

我需要我的 php 网络服务来调用该过程并能够返回类似于以下内容的 json:

{
"userID": "2222",
"userName": "mr x",
"userAddress": "street, town, County",
"userMobile": "1111",
"userPhone2": "2222",
"latitude": "53.2802937",
"longitude": "-9.0515995",
"relations": [
{
"relID": "3333",
"relFName": "Mr",
"relSName": "rel1",
"relAddress": "street2, town2, county2",
"relPhone": "3333",
"relPhone2": "3333",
"relType": "Brother"
},
{
"relID": "4444",
"relFName": "ms",
"relSName": "rel4",
"relAddress": "street 4, town 4, county 4",
"relPhone": "4444",
"relPhone2": "4444",
"relType": "Friend"
}
]
}

我目前有两个存储过程即

获取用户:

BEGIN

SELECT * FROM Users ORDER BY userSName DESC;

END

和getRels:

BEGIN

SELECT * FROM relations WHERE relations.userID = UserIDParam;

END

但我不确定如何链接它们,在使用 sps 之前,我有两个疑问。外部查询检索用户详细信息,内部查询针对第一个结果集中的每一行执行,即获取每个用户的关系数组。但是,当我从基本查询切换到调用存储过程时,我收到命令不同步的错误。

我似乎无法找到我想要实现的目标的示例。任何帮助表示赞赏

更新PHP 代码看起来像这样:

$fetch = mysql_query("CALL getUsers();");

while ($row = mysql_fetch_array($fetch)){

$GetRelations_Query = "CALL getRels();";
$relations_results=mysql_query($GetRelations_Query);
$relations_arr = array();

while ($InnerRow = mysql_fetch_array($relations_results)){

$relationsReturned = array('relID' =>$InnerRow['personID'], 'relFName' => $InnerRow['FName'], 'relSName' => $InnerRow['SName'],
'relAddress' => $InnerRow['Address'], 'relPhone' => $InnerRow['Phone'], 'relPhone2' => $InnerRow['Phone2'], 'relType' =>
$InnerRow['relationship']);

array_unshift($relations_arr,$relationsReturned);
}


$row_array = array('userID' => $row['userID'], 'userName' => $row['userName'].' '.$row['userSName'], 'userAddress' => $row['userAddress'],
'userMobile' => $row['userMobile'],'userPhone2' => $row['userPhone2'], 'latitude' => $row['latitude'], 'longitude' => $row['longitude'], 'relations' => $relations_arr);

array_unshift($return_arr,$row_array);
}

错误是 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given referred to the line 'while ($InnerRow = mysql_fetch_array($relations_results)){'。我知道当我打印出与该查询相关的错误时,我正在检索上述错误消息,即命令不同步

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