php
  • mysql
  • string
  • 2011-06-01 91 views 1 likes 
    1

    這有什麼理由不適用?PHP/MySQL - 將字符串附加在一起以進行查詢..?

    $events_query = "SELECT eventID, event_name, event_type, event_address, event_duration, event_date, event_time, event_description, num_attending 
              FROM events WHERE event_city = '$city' " .$type_query .$date_query .$time_query; 
    $events_list = mysql_query($events_query); 
    
    /* Where $type_query and $date_query are things like: 
    
    $type_query = "AND event_type = '$type' "; 
    
    */ 
    

    基本上上面的代碼是不是給我預期的結果,所以我不知道是否有一個與我做它在PHP的方式有問題。如果不是,那麼這意味着我有一個邏輯問題,我更喜歡這個問題,因爲我真的不知道如何去做這些我想要做的變量類型查詢。基本上我的查詢會因用戶輸入的數據而異。

    謝謝。

    +1

    構建查詢的方法沒有任何內在的錯誤。你必須解釋結果與預期的不同之處,我建議回顯/記錄最後的'$ events_query'並將其與你的需求進行比較。 – Fosco 2011-06-01 04:18:21

    +0

    好吧,沒關係,我只是想確認這個語法可行。我現在可以得出結論,問題是我的錯誤邏輯某處=) – maxcollins 2011-06-01 04:19:25

    +0

    你試過刪除「。」從查詢的結束部分? – amolv 2011-06-01 04:20:33

    回答

    0

    嘗試把在

    echo $events_query; 
    

    聲明在代碼中看到生成的SQL是什麼。以這種方式看到任何錯誤都容易得多。一般來說,雖然,是的,這是完全合法的,並且生成這樣的SQL很常見。

    0

    構建查詢的方法沒有任何內在的錯誤。你將不得不解釋結果與你的期望有什麼不同,並且我會建議迴應/記錄最終的$ events_query並將其與你的需求進行比較。

    0

    字符串串聯是構建SQL查詢的合法方式,所以只要您遵守PHP的語法要求,您就可以通過這種方式生成有效的SQL。

    將生成的字符串打印出來(記錄到日誌文件或網頁),並檢查它是否與您認爲正在生成的內容匹配。它可能會有一個引號或分號,它會改變或提前終止查詢。

    將該字符串粘貼到MySQL的控制檯,看看它是否會給出任何額外的錯誤。

    有關將用戶輸入直接接收到SQL查詢中的常見警告適用。

    0
    $events_query = "SELECT eventID, event_name, event_type, event_address, event_duration, event_date, event_time, event_description, num_attending FROM events WHERE event_city ='$city' $type_query $date_query $time_query "; 
    

    echo此查詢複製運行在phpmyadmin我們得到的結果,我們可以修改查詢然後。

    相關問題