2017-04-10 191 views
-4

您好我已經編碼此代碼與PHP 5,我幾年前做過,我試圖使它與PHP 7,這是我目前的網站版本的工作,但我不斷收到這個錯誤,不知道如何解決它,我試圖改變它在PHP網站上所說的全部內容,但是由於我用PHP編碼了很長時間,所以所有的幫助都非常感謝。謝謝。PHP 7 - MySQL錯誤mysqli_query()參數

這是我的錯誤:

Warning: mysqli_query() expects at least 2 parameters, 1 given in send_url.php on line 20 Warning: mysqli_fetch_assoc() expects parameter 1 to be resource, null given in send_url.php on line 22 No more downloads

,這是我的代碼:

// Create connection 
$connect = new mysqli($host, $username, $password, $database); 

// Check connection 
if ($connect->connect_error) { 
die("Connection failed: " . $connect->connect_error); 
} 
echo "Connected successfully"; 

$q = $_GET[q]; 
if (!$q) 
{ 
$q = "0"; 
} 

$query = "SELECT * FROM links WHERE link = '$q'"; 
$result = mysqli_query($query); 

$row=mysqli_fetch_assoc($result); 

$filepath = $row["getfilename"]; 
$dltimes = $row["dltimes"]; 
$minusone = $dltimes-1; 

if ($dltimes>0) 
{ 

$location = 'myfiles/'. $filepath; 

$changequery = "UPDATE links SET dltimes = '$minusone' WHERE link = '$q'"; 
$changeresult = mysqli_query($changequery); 

     $filename = 'dummy.zip'; 
     $filename = realpath($location); 

     $file_extension = strtolower(substr(strrchr($filename,"."),1)); 

     switch ($file_extension) { 
      case "pdf": $ctype="application/pdf"; break; 
      case "exe": $ctype="application/octet-stream"; break; 
      case "zip": $ctype="application/zip"; break; 
      case "doc": $ctype="application/msword"; break; 
      case "xls": $ctype="application/vnd.ms-excel"; break; 
      case "ppt": $ctype="application/vnd.ms-powerpoint"; break; 
      case "gif": $ctype="image/gif"; break; 
      case "png": $ctype="image/png"; break; 
      case "jpe": case "jpeg": 
      case "jpg": $ctype="image/jpg"; break; 
      default: $ctype="application/force-download"; 
     } 

     if (!file_exists($filename)) { 
      die("NO FILE HERE"); 
     } 

     header("Pragma: public"); 
     header("Expires: 0"); 
     header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
     header("Cache-Control: private",false); 
     header("Content-Type: $ctype"); 


     header("Content-Disposition: attachment; filename=\"".$filepath. "\";"); 

     header("Content-Transfer-Encoding: binary"); 
     header("Content-Length: "[email protected]($filename)); 
     set_time_limit(0); 
     @readfile("$filename") or die("File not found."); 

} 
else 
{ 
echo "No more downloads"; 
} 
+0

mysqli_query需要($連接,$查詢) – clearshot66

+0

函數需要至少兩個參數。如文檔中所定義:https://secure.php.net/manual/en/mysqli.query.php您只提供一個參數。就像錯誤是特意告訴你的一樣。 – David

回答

1

你需要修復你的代碼的PHP錯誤訊息說:

$connection = mysqli_connect($host, $username, $password, $database); 

$result = mysqli_query($connection, $query); 

然後,$result不會是null,所以你可以取它:

$row=mysqli_fetch_assoc($result); 

ASLO,最好使用MySQLi時使用objet-oriented style,例如:

$mysqli = new mysqli($hostname, $username, $password, $database); 

$result = $mysqli->query($query); 

while ($row = $result->fetch_assoc()) { 
    $filepath = $row["getfilename"]; 
    $dltimes = $row["dltimes"]; 

    // rest of your code 
}