php
  • mysql
  • 2012-07-20 140 views 0 likes 
    0

    這是我第一個php的第一名。如果我有什麼問題,請幫我用代碼。因爲我剛開始學習。我嘗試了這麼多的教程,但我無法打開什麼即時通訊做錯了。Where子句php無法正常工作

    <?php 
    
    include "db_config.php"; 
    
    $query = mysql_query("SELECT * FROM places WHERE place_id ='".mysql_real_escape_string($_REQUEST[place_id])."'"); 
    
    while($e=mysql_fetch_assoc($query)) 
         $output[]=$e; 
    
    echo $row['name']; 
    
    mysql_close(); 
    ?> 
    

    這是正確的嗎?我不知道它是如何工作的。

    $stmt = $db->prepare("SELECT * FROM table WHERE $_REQUEST[place_id]"); 
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
    
    +0

    如果這是你的第一個PHP程序請你幫個忙,並停止使用過時的mysql_電話的家庭。切換到mysqli_或更好,PDO。 – fvu 2012-07-20 15:07:23

    +2

    不使用'mysql_ *'函數的另一個原因:您需要注意傳遞結果。 PDO在這裏更加舒適,您可以通過'foreach'使用它,這可以減少您可以發生此類錯誤的地方。 – hakre 2012-07-20 15:08:09

    +0

    如果'place_id'是數字 - 你應該刪除當前包含它的引號 – ManseUK 2012-07-20 15:21:19

    回答

    4

    你必須在這條線一個錯字:

    while($e=mysql_fetch_assoc($q)) 
    

    $q需求是$query。我在代碼中看不到變量$q。這是一個在PHP代碼中的常見問題,就好像你引入了一個名字,如$qphp是「很好」,足以爲你創建變量並將其初始化爲null而不是理智地給你一個錯誤。

    +0

    這不是該(短)腳本中唯一的錯誤。 – hakre 2012-07-20 15:09:07

    2

    您需要將mysql_fetch_assoc()與mysql_query的結果相關聯,這裏是$ query。

    <?php 
    
    include "db_config.php"; 
    
    $query = mysql_query("SELECT * FROM places WHERE place_id='".mysql_real_escape_string($_POST[place_id])."'"); 
    
    while($e=mysql_fetch_assoc($query)) 
        $output[]=$e; 
    
    print(json_encode($output)); 
    
    mysql_close(); 
    ?> 
    

    此外,你需要使用一些PDO或mysqli的,因爲mysql_被棄用:http://php.net/manual/en/function.mysql-query.php

    +0

    好....如何寫你說的?使用pdo或mysqli? – Loshi 2012-07-20 15:12:12

    相關問題