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
}
}
?>