Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 资源id';s返回,但仍得到警告:mysql\u fetch\u assoc():提供的参数不是有效的mysql结果资源_Php_Mysql_Warnings - Fatal编程技术网

Php 资源id';s返回,但仍得到警告:mysql\u fetch\u assoc():提供的参数不是有效的mysql结果资源

Php 资源id';s返回,但仍得到警告:mysql\u fetch\u assoc():提供的参数不是有效的mysql结果资源,php,mysql,warnings,Php,Mysql,Warnings,可能重复: 我已经试过我的代码,它似乎是工作,但它抛出错误 我在灯光环境中,这是我的代码 <?php mysql_select_db($database_conn1, $conn1); //DROPING VIEW $query_rsDropView = "DROP VIEW attorneyOrder;"; echo $query_rsDropView . "/////"; //this code outputs nothing, not e

可能重复:

我已经试过我的代码,它似乎是工作,但它抛出错误

我在灯光环境中,这是我的代码

    <?php
    mysql_select_db($database_conn1, $conn1);

    //DROPING VIEW
    $query_rsDropView = "DROP VIEW attorneyOrder;";
    echo $query_rsDropView . "/////";  //this code outputs nothing, not even the "/////" part.
    $rsDropView = mysql_query($query_rsDropView, $conn1) or die(mysql_error());
    echo $rsDropView . "/////";     //output the value "1" (witout quotes)
    $row_rsDropView = mysql_fetch_assoc($rsDropView);      //line 222
    $totalRows_rsDropView = mysql_num_rows($rsDropView);   //line 223

    //CREATING VIEW
    $query_rsView = "CREATE VIEW attorneyOrder AS SELECT * FROM LewisJohsAttorneys ORDER BY lname ASC;";
    $rsView = mysql_query($query_rsView, $conn1) or die(mysql_error());
    echo $rsView . "/////";     //outputs the value "1" (without quotes)
    $row_rsView = mysql_fetch_assoc($rsView);      //line 228
    $totalRows_rsView = mysql_num_rows($rsView);   //line 229

    //GETTING VALUES FOR SELECT ON VIEW
    $urlStart_rsName = "NULL";
    if (isset($_GET['start'])) {
         $urlStart_rsName = $_GET['start'];
    }
    $urlEnd_rsName = "NULL";
    if (isset($_GET['end'])) {
         $urlEnd_rsName = $_GET['end'];
    }

    //SELECTING DATA FROM VIEW
    $query_rsName = sprintf("SELECT * FROM attorneyOrder WHERE attorneyOrder.lname BETWEEN %s AND %s;", GetSQLValueString($urlStart_rsName, "text"),GetSQLValueString($urlEnd_rsName, "text"));
    $rsSearch = mysql_query($query_rsName, $conn1) or die(mysql_error());
    echo $rsSearch . "/////";  //outputs a resouce id
    $totalRows_rsName = mysql_num_rows($rsName);    //line 249

    //OUTPUTING DATA
    while($rsSearch = mysql_fetch_assoc($rsSearch)){   //line 262
    //do some stuff here
    }

    ?>
我假设它都源于同一个问题,这就是为什么每个后续查询都返回一个无效值的原因,因为它们都是基于先前的输出生成的

但是,我仍然得到正确的输出。我可以抑制这些错误,但我想知道为什么会出现这些错误。在线搜索后,一个常见的原因是没有指定数据库,但这是我在这行代码中做的第一件事[code]mysql\u select\u db($database\u conn1,$conn1);[/code]


我尝试输出查询的返回结果,并在代码中对其输出进行注释。它们似乎以“1”或“true”或资源id的形式正确返回。

您的错误是有原因的。您不需要抑制它们,但需要修复它们

mysql_fetch_assoc()函数用于从数据库中选择内容。在这种情况下,将返回使用此函数获取的选定行的数组。 第222行和第228行中的错误就在这里,因为创建视图或下拉视图不是选择查询,在那里完全没有必要。 第223229行的mysql_num_rows()也是如此。此函数也仅用于选择查询。 第249行出现错误,因为脚本中不存在变量$rsName。这应该是mysql\u num\u行($rsSearch);如果您正在使用mysql执行选择、显示、描述和解释查询,则查询函数将返回ResultSet(如果通过了确定),如果失败,则返回FALSE。您可以使用mysql_fetch_assoc()获取结果集,并在其中循环。但如果该查询不存在行,则mysql\u查询将返回false,该值不能传递给mysql\u fetch\u assoc()

应该这样写:

<?php
mysql_select_db($database_conn1, $conn1);

//DROPING VIEW
$q_drop = "DROP VIEW attorneyOrder;";
echo $q_drop. "/////"; // prints out string stored in $q
$rsDropView = mysql_query($q_drop, $conn1) or die(mysql_error());
echo $rsDropView . "/////";     // prints TRUE (1) if mysql_query() went well or FALSE(0) if it failed

//CREATING VIEW
$q_view = "CREATE VIEW attorneyOrder AS SELECT * FROM LewisJohsAttorneys ORDER BY lname ASC;";
$rsView = mysql_query($q_view, $conn1) or die(mysql_error());
echo $rsView . "/////";     // prints TRUE (1) if mysql_query() went well or FALSE(0) if it failed


//GETTING VALUES FOR SELECT ON VIEW
$urlStart_rsName = "NULL";
if (isset($_GET['start'])) {
     $urlStart_rsName = $_GET['start'];
}
$urlEnd_rsName = "NULL";
if (isset($_GET['end'])) {
     $urlEnd_rsName = $_GET['end'];
}

//SELECTING DATA FROM VIEW
$query_rsName = sprintf("SELECT * FROM attorneyOrder WHERE attorneyOrder.lname BETWEEN %s AND %s;", GetSQLValueString($urlStart_rsName, "text"),GetSQLValueString($urlEnd_rsName, "text"));
$rsSearch = mysql_query($query_rsName, $conn1) or die(mysql_error());
echo $rsSearch . "/////";  //outputs a resouce id
$totalRows_rsName = mysql_num_rows($rsSearch);    //line 249

//OUTPUTING DATA
if($totalRows_rsName>0){
    while($rsSearch = mysql_fetch_assoc($rsSearch)){   //line 262
        //do some stuff here
    }
}


?>

好的,我现在明白了。我不需要mysql_fetch_assoc();或者mysql_num_rows()和我的select变量错误。谢谢你的帮助。
<?php
mysql_select_db($database_conn1, $conn1);

//DROPING VIEW
$q_drop = "DROP VIEW attorneyOrder;";
echo $q_drop. "/////"; // prints out string stored in $q
$rsDropView = mysql_query($q_drop, $conn1) or die(mysql_error());
echo $rsDropView . "/////";     // prints TRUE (1) if mysql_query() went well or FALSE(0) if it failed

//CREATING VIEW
$q_view = "CREATE VIEW attorneyOrder AS SELECT * FROM LewisJohsAttorneys ORDER BY lname ASC;";
$rsView = mysql_query($q_view, $conn1) or die(mysql_error());
echo $rsView . "/////";     // prints TRUE (1) if mysql_query() went well or FALSE(0) if it failed


//GETTING VALUES FOR SELECT ON VIEW
$urlStart_rsName = "NULL";
if (isset($_GET['start'])) {
     $urlStart_rsName = $_GET['start'];
}
$urlEnd_rsName = "NULL";
if (isset($_GET['end'])) {
     $urlEnd_rsName = $_GET['end'];
}

//SELECTING DATA FROM VIEW
$query_rsName = sprintf("SELECT * FROM attorneyOrder WHERE attorneyOrder.lname BETWEEN %s AND %s;", GetSQLValueString($urlStart_rsName, "text"),GetSQLValueString($urlEnd_rsName, "text"));
$rsSearch = mysql_query($query_rsName, $conn1) or die(mysql_error());
echo $rsSearch . "/////";  //outputs a resouce id
$totalRows_rsName = mysql_num_rows($rsSearch);    //line 249

//OUTPUTING DATA
if($totalRows_rsName>0){
    while($rsSearch = mysql_fetch_assoc($rsSearch)){   //line 262
        //do some stuff here
    }
}


?>