2013-06-11 96 views
0

我想让函数检查特定数据是否在mysql的mydb中。我写下面的功能,但我得到这一行错误$is_ok_array=mysql_fetch_row($is_ok);有人能帮助我吗?对不起我的英语不好:) :)php mysqli错误mysql_fetch_row()

它说:mysql_fetch_row() expects parameter.我搜索了那个错误表示我的sql不能正常工作。但我的SQL查询正在工作。这里是

$query_add ="INSERT INTO notes1 (id,name,size,url,thumbnail_url,delete_url,delete_type) VALUES('$_SESSION[userid]','$file_name','$file_size','$file_url','$file_thumbnail_url','$delete_url','$delete_type')"; 

- 我的功能

protected function is_same($file_name,$file_size,$file_url,$file_thumbnail_url,$delete_url1,$delete_type1) { 

    $query_same = "Select * From notes1 WHERE id='$_SESSION[userid]' and name='$file_name' and size='$file_size' and url='$file_url' and thumbnail_url='$file_thumbnail_url' and  delete_url='$delete_url1' and delete_type='$delete_type1'" or die (mysql_error()); 
    $is_ok = mysqli_query($this->is_db_open,$query_same); 

    if($is_ok) { 
     $is_ok_array = mysql_fetch_row($is_ok); 
    } else { 
     echo "Wrong query"; 
    } 

    if($this->is_db_open) { 

     echo count($is_ok_array); 

     if((count($is_ok_array))>0) { 
      return true; 
     } else {  
      return false; 
     } 

    } else { 
     echo "Db not open"; 
    } 
} 

回答

2

你有2个问题,你的代码,第一个是:

$is_ok= mysqli_query($this->is_db_open,$query_same); 

基于这样的事实,你在后面的代码和命名使用它在if语句,看起来像$this->is_db_open是一个布尔值,指示您是否有连接到数据库的连接,而不是从mysqli_connect()返回的连接对象。

mysqli_query()预计第一个参数要么是连接对象,要么查询是否没有第二个参数。删除$this->is_db_open参数,它将默认为最近打开的数据库连接,或将其替换为实际的连接对象。

第二个问题是您正在运行查询mysqli_query()并返回结果mysql_fetch_row()。您需要使用mysqli_fetch_row()来匹配您的查询功能。

1

您使用的是mysqli_*查询

mysqli_query($this->is_db_open,$query_same); 
    ^

但随后使用mysql_*

mysql_fetch_row($is_ok); 

尝试使用mysqli_ fetch_row

mysqli_fetch_row($is_ok); 
    ^
1

您不能使用mysqli_query结果与mysql_函数。显然,你想使用mysql_query。此外,为了以防万一,请确保您事先已有connected to mysql