我正在开发自定义CMS,对数据库架构和表示层进行了更改。我使用以下代码部分得到相对于mysql_num_fields和mysql_num_rows的错误。有人能告诉我为什么会出现这些错误吗?
public function viewTableData($db_name,$table_name,$fld01,$where_clause,$order_by,$asc_desc){
mysql_select_db($db_name);
if($fld01!="")
{
$sql = "Select $fld01 from $table_name";
}
else
{
$sql = "Select * from $table_name";
}
if($where_clause!="")
{
$sql=$sql." ".$where_clause;
}
if(($order_by!="")&&($asc_desc!=""))
{
$sql=$sql." ".$order_by." ".$asc_desc;
}
else if(($order_by!="")&&($asc_desc==""))
{
$sql=$sql." ".$order_by;
}
//return "<br/>sql :".$sql;
$result = mysql_query($sql);
$count_fields = mysql_num_fields($result);
$count_rows = mysql_num_rows($result);
if($count_rows>0)
{
$index = 0;
unset($this->data_array);
while ($row = mysql_fetch_assoc($result)) {
$this->data_array[] = $row;
} // while
//Finally we release the database resource and return the multi-dimensional array containing all the data.
mysql_free_result($result);
return $this->data_array;
}
}
答案 0 :(得分:1)
在echo mysql_error();
行后面按mysql_query
行,以查看来自服务器的错误。
答案 1 :(得分:0)
你没有测试$ result,从mysql_query()返回时可能为FALSE
另外,我会改写:
if($order_by!="")
{
$sql.=" ".$order_by." ".$asc_desc;
}
MySQL并不关心这里和那里的额外空间。