2015-05-22 61 views
0

我收到这两种误差给出:ERROR:警告:mysqli_query()预计至少2个参数,1

Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/shadow28/public_html/register.php on line 11
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /home/shadow28/public_html/register.php on line 12 Your key isn't valid, please contact support.

这里是register.php

<?PHP 
    require_once("include/config.php"); 
    require('libs/Smarty.class.php'); 
    $smarty = new Smarty; 
    $smarty->template_dir = 'templates'; 
    $smarty->compile_dir = 'temp'; 
    if(isset($_POST['username']) and ($_POST['password']) and ($_POST['key'])){ 
     $username = $_POST['username']; 
     $password = md5($_POST['password']); 
     $key = $_POST['key']; 
      $query = mysqli_query("SELECT * FROM `keys` WHERE `key`='{$key}'"); 
      if (mysqli_num_rows($query) == 1) { 
      while($row = mysql_fetch_array($query)){ 
       $key1 = $row[0]; 
       $months = $row[1]; 
       $max = $row[2]; 
       $type = $row[3]; 
      } 
      if($months=="lifetime"){ 
       $months = "lifetime"; 
      }else{ 
       $time = time(); 
       $months = $time + 86400 * $months; 
      } 

      $query = mysql_query("INSERT INTO `users` (`login`, `passwd`, `max`, `attacks`, `expiry`, `type`, `key`) VALUES ('".$username."', '".$password."', '".$max."', '100', '".$months."', '".$type."', '{$key}');"); 
      $query = mysql_query("delete from `keys` where `key`='{$key}'"); 
      echo mysql_error(); 
      $smarty->assign("done", "Your account has been added, you can now login."); 
     }else{ 
      die("Your key isn't valid, please contact support."); 
     } 
    }else{ 
     $smarty->assign("done", ""); 
    } 

    $smarty->display("class.register.tpl"); 
?> 
+0

如果检查[文档](http://php.net/manual/en/mysqli .query.php),你会看到它需要两个参数。第一个不是查询,而是mysqli_connect的$链接。 – ahoffner

+0

[Warning:mysqli \ _query()需要至少2个参数,给出1个可能的重复。什么?](http://stackoverflow.com/questions/19148407/warning-mysqli-query-expects-at-least-2-parameters-1-given-what) – ahoffner

+0

请编辑你的错误块 –

回答

0

mysqli要求2参数和第一个参数应该是你mysqli_connect()

$link = mysqli_connect("localhost", "dbuser", "dbpass", "dbname"); $query = mysqli_query($link, "SELECT * FROM 'keys' WHERE 'key'='{$key}'");

为什么你的INSERT和DELETE查询使用mysql_而不是mysqli_

如果用mysql_connect()连接你不需要mysqli_query($link, "query")mysql_query("query")

请注意i背后mysql

相关问题