2016-09-22 80 views
0

这里是我的代码警告:mysqli_num_rows()预计参数1被mysqli_result,在C定的boolean: XAMPP htdocs中 midtermProject signupPost.php

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE email = '$email'"); 

     if(mysqli_num_rows($res) != 0) { 
      $response = 'email already taken'; 
     } 

     $res = mysqli_query($conn, "SELECT * FROM foodtography WHERE name = '$name'"); 

     if(mysqli_num_rows($res) != 0) { 
      $response = 'Name already in use'; 
     } 

     $res = mysqli_query($conn, "SELECT * FROM foodtography WHERE username = '$uname'"); 

     if(mysqli_num_rows($res) != 0){ 
      $response = 'Username not available'; 
     } 

回答

1

这是因为下面的计算结果为false

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE name = '$name'"); 

这可能是因为您的查询中有错误。这可能是因为$ name是空的或具有无效字符。我们都知道的错误实际上可能来自

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE email = '$email'"); 

$res = mysqli_query($conn, "SELECT * FROM foodtography WHERE username = '$uname'") 

你还没告诉我们的行号。你不应该这样使用mysqli。您应该使用准备好的语句并绑定参数以避免此类错误并避免sql注入。

+0

准备好的陈述部分的荣誉*同时还*回答问题。 +! –

+0

@JefréN。根据我的经验,只是提到一些技术并没有丝毫影响。人们倾向于信任一个例子,而不是布道。实际上,这个查询仍然容易出现这样的错误 - 所以它甚至没有回答这个问题。 –

+0

@YourCommonSense:你说得对。它甚至没有跨过我的脑海,这并没有真正回答这个问题。但是,它确实指出了问题的原因(即'$ res === false'),所以我提出了这个问题。那里。就是这样。 :)(顺便说一下,这是一篇关于'PDO'的漂亮文章。荣誉。) –

相关问题