Php 查询未从表中获取数据

Php 查询未从表中获取数据,php,mysql,Php,Mysql,我的问题是,当我直接在MySQL中运行查询时,它会工作: SELECT * FROM SubCategoryLookup WHERE LinkedCategoryID = '4' AND OrganizationCode = 'ibm' 在使用PHP时,如果我给出任何变量,则它不会获得记录: $OrganizationCode=$_REQUEST['OrganizationCode']; echo($OrganizationCode); $CategoryId=$_REQUEST['Cat

我的问题是,当我直接在MySQL中运行查询时,它会工作:

SELECT * FROM SubCategoryLookup  WHERE LinkedCategoryID = '4' AND OrganizationCode = 'ibm'
在使用PHP时,如果我给出任何变量,则它不会获得记录:

$OrganizationCode=$_REQUEST['OrganizationCode'];
echo($OrganizationCode);

$CategoryId=$_REQUEST['CategoryId'];
echo($CategoryId);

$query = mysql_query("SELECT *
                        FROM SubCategoryLookup
                       WHERE LinkedCategoryID = '$CategoryId'
                             AND OrganizationCode = '$OrganizationCode'");
echo($query);

$rows = array();
while($row = mysql_fetch_assoc($query))
{
    $rows[] = $row;
}
echo json_encode($rows);
当我使用URL访问此文件时:

下面是结果,它不显示记录

celeritasCategoryId=3Resource id #3[]

确保$rows数组是正确的。 在执行json_encode之前打印它

删除数组分配代码并添加此代码

array_push($rows,$row)

然后打印$rows

确保$rows数组正确。 在执行json_encode之前打印它

删除数组分配代码并添加此代码

array_push($rows,$row)

然后打印$rows

您的URL上缺少一个
&
,应该是:

http://www.celeritas-solutions.com/pah_brd_v1/productivo/getSubCategory.php?OrganizationCode=celeritas&CategoryId=3
仔细观察,您会发现:

OrganizationCode=celeritasCategoryId=3
应该是:

OrganizationCode=celeritas&CategoryId=3
这会导致
$CategoryId
未设置(或者换句话说为空),这会使您的查询失败,并且不会给出任何结果

您应该使用以确保设置了变量:

$OrganizationCode = $_GET['OrganizationCode'];
if (!isset($OrganizationCode))
    die("There is no organization code...");

$CategoryId = $_GET['CategoryId'];
if (!isset($CategoryId))
    die("There is no category id...");
以及使用和正确使用错误处理程序对其进行清理以防止注入,以了解查询是否因以下原因失败:


不再支持mysql*函数,它们不再维护,将来也会维护。您应该使用或更新代码,以确保将来项目的功能


以下是您将获得的信息:

 [{
     "SubCategoryID": "8",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client A",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }, {
     "SubCategoryID": "9",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client B",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }, {
     "SubCategoryID": "10",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client C",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }]

您的URL上缺少一个
&
,应该是:

http://www.celeritas-solutions.com/pah_brd_v1/productivo/getSubCategory.php?OrganizationCode=celeritas&CategoryId=3
仔细观察,您会发现:

OrganizationCode=celeritasCategoryId=3
应该是:

OrganizationCode=celeritas&CategoryId=3
这会导致
$CategoryId
未设置(或者换句话说为空),这会使您的查询失败,并且不会给出任何结果

您应该使用以确保设置了变量:

$OrganizationCode = $_GET['OrganizationCode'];
if (!isset($OrganizationCode))
    die("There is no organization code...");

$CategoryId = $_GET['CategoryId'];
if (!isset($CategoryId))
    die("There is no category id...");
以及使用和正确使用错误处理程序对其进行清理以防止注入,以了解查询是否因以下原因失败:


不再支持mysql*函数,它们不再维护,将来也会维护。您应该使用或更新代码,以确保将来项目的功能


以下是您将获得的信息:

 [{
     "SubCategoryID": "8",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client A",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }, {
     "SubCategoryID": "9",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client B",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }, {
     "SubCategoryID": "10",
     "LinkedCategoryID": "3",
     "SubCategoryTitle": "Projects: Client C",
     "SubCategoryAddedDateTime": "2013-07-12 23:16:25",
     "SubCategoryAddedByUserID": "1",
     "OrganizationCode": "celeritas"
 }]

对您也可以将其用于格式化打印。回声“;打印(行);"";以下是结果celeritasCategoryId=1资源id#3阵列()[]是。您也可以将其用于格式化打印。回声“;打印(行);"";以下是结果celeritasCategoryId=1资源id#3Array()[]@Prix在我删除回显查询时仍然显示此结果celeritasCategoryId=1Array()[]@Prix在我删除回显查询celeritasCategoryId=1Array()[]时仍然显示此结果