2013-11-28 87 views
0

這段代碼有什麼問題?PHP MySQL有什麼不對?

if(isset($_POST['user'])){ 
    $uzy = $_POST['user']; 
    if(!empty($uzy)){ 
     $q = sprintf("SELECT `id` FROM `users` WHERE user= '".mysql_real_escape_string($uzy)."'"); 
     $s = mysql_query($q); 
    if($wQ=mysql_query($q)) { 
     $wQr = mysql_num_rows($wQ); 
      if($wQr == 0){ 
      echo "<div style ='font:21px Trebuchet MS; color:#ff0000'>wrong login</div>"; 
      }else if($wQr == 1){ 
     $uzyt = mysql_result($wQ, 0, 'id'); 
     $_SESSION['uzyt'] = $uzyt; 
     $sql = "SELECT * FROM work2 WHERE id='$s'"; 
    ... 
    ... 
    ... 
} 
} 
} 
} 

的問題是在這裏:$sql = "SELECT * FROM work2 WHERE id='$s'";,因爲當我把例如$sql = "SELECT * FROM work2 WHERE id='1'";一切正常。 是錯誤的語法還是什麼?

+0

add $ sql =「SELECT * FROM cwiczenie2 WHERE id ='」。 $ s。 「'」; –

+0

$ s是一個結果集資源,而不是標量值 –

+0

這裏是'$ s = mysql_query($ q)'的問題;''s'應該有id,但它有查詢對象 –

回答

1

你是嚴重的誤用和錯誤理解如何PHP/MySQL的操作:

$s = mysql_query($q); 
    ^^^--- query result handle 

    $sql = "SELECT * FROM work2 WHERE id='$s'"; 
              ^^---- can't use a result handle here 
+0

所以我怎樣才能收到我的身份證號碼? – user1950221

+0

學習基本的SQL,並閱讀mysql _ *()函數的工作方式:http://en.wikipedia.org/wiki/Join_%28SQL%29 –

0

問題在於,因爲您的查詢是不能轉換$ S到其原始值。 它把它當作一個字符串處理。 也許你應該這樣做

$ sql =「SELECT * FROM work2 WHERE id ='」$ s「'」;

另一件可能在調試時派上用場的是使用echo語句。 假如你試圖做

回聲$ SQL

你不會已經張貼在這裏反正:)

PS - 我們非常樂意幫助:) 不斷地來,不斷使問題

+0

我發現我的錯誤,它的工作原理:)感謝您的幫助 – user1950221