2014-10-30 57 views
-1

我試圖閱讀和做(合併)我在這裏找到的任何東西。但我還沒有找到解決方案。我使用的是wamp服務器,我有一個用戶表,其中有兩個用戶,一個用email和password作爲test和test1,不管我怎麼試,if語句總是返回false。php查詢alwaysfalse不管是什麼

<?php 

$user = "root"; 
$pass = ""; 
$db = "testdb"; 

$db = new mysqli("localhost", $user, $pass, $db) or die("did not work"); 

echo "it connected"; 

$email = "test"; 
$pass1 = "test1"; 
$qry = 'SELECT * FROM user WHERE email = " '. $email .' " AND password = " '.$pass1.' " '; 

$result = mysqli_query($db, $qry) or die(" did not query"); 

$count = mysqli_num_rows($result); 

if($count > 0) 
    echo "  found user "; 
else 
    echo " did not find user or password"; 

?> 

我試圖以增加mysqli_num_rows但隨後它出來總是如此

+0

改變您的查詢這種方式,選擇* from用戶,其中email ='email'和password ='password'。目前它的雙引號。 – Roni 2014-10-30 19:46:52

回答

0

我需要消除的空格中的變量

<?php 

$user = "root"; 
$pass = ""; 
$db = "testdb"; 

$db = new mysqli("localhost", $user, $pass, $db) or die("did not work"); 

echo "it connected"; 

$email = "test"; 
$pass1 = "test1"; 
$qry = 'SELECT * FROM user WHERE email = "'. $email .'" AND password = "'.$pass1.'"'; 

$result = mysqli_query($db, $qry) or die(" did not query"); 

$count = mysqli_num_rows($result); 

if($count > 0) 
    echo "  found user "; 
else 
    echo " did not find user or password"; 

?> 
1

您的查詢周圍的變量空間:

" '. $email .' " 

變化:

"'. $email .'" 

MySQL在搜索匹配時會逐字地佔用這些空格。

0

封裝如果您使用的mysqli類版本,那麼你應該象下面這樣使用:

<?php 

$user = "root"; 
$pass = ""; 
$db = "testdb"; 

$mysqli = new mysqli("localhost", $user, $pass, $db); 

$email = "test"; 
$pass1 = "test1"; 

$qry = sprintf('SELECT * FROM user WHERE email = "%s" AND password = "%s"',$email,$pass1); 
$result = $mysqli->query($qry); 
$count = $result->num_rows; 

if($count > 0) 
    echo "  found user "; 
else 
    echo " did not find user or password"; 

$mysqli->close(); 
?>