2013-06-11 105 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