2013-12-21 50 views
-1

好吧,我知道這個問題之前已經被問過了,但是我沒有找到的東西已經被用作解決方案。我不斷收到21號錯誤:mysqli_num_rows()期望參數1是mysqli_result,布爾給出

<?php 
include("config.php"); 
$con = mysqli_connect("$host", "$mysqlusername", "$mysqlpassword")or die("cannot connect"); 

$username=$_POST['username']; 
$password=$_POST['password']; 
$password2=$_POST['password2']; 
$email=$_POST['email']; 

if ($password == $password2) { 

} 
else 
{ 
echo "Passwords did not match."; 
} 

$encryptedpass = md5($password); 

$query = mysqli_query($con,"SELECT * FROM members WHERE username = '". $username ."' OR email = '". $email ."'"); 
if (mysqli_num_rows($query) > 0) 
{ 
echo 'Username or email already in use.'; 
} 
else 
{ 
mysqli_query($con,"INSERT INTO members (username, password, email) 
VALUES ('$username', '$encryptedpass','$email')"); 
} 

mysqli_close($con); 
?> 

此外,我知道我有一個MySQL注入漏洞。那麼任何人都可以幫助我?

回答

0

mysqli_query返回布爾值有兩個原因:查詢失敗或查詢未返回結果集。在這種情況下,由於您正在進行返回結果集(SELECT)的查詢,因此只有第一個選項可以爲true,因此查詢必須失敗。找出錯誤信息並修復您的查詢。你可以使用mysqli_error來找出它。

您可能還需要在查詢前選擇數據庫。你只能連接。使用mysqli_select_db。

+0

謝謝你,我忘了選擇數據庫....我花了幾個月的時間從編碼中解脫出來,並且我猜想有點滑倒。 – Nightmare

相關問題