2013-08-18 55 views
0

這裏是我創建的鏈接頁面查詢與特定的值不返回行

<a href="http://www.site.com/wiki/city/<?php echo urlencode($city); ?>" ><?php echo urlencode($city); ?></a> 

這裏是長什麼樣網址像這個特殊的城市:

http://www.site.com/wiki/city/Qazvin+%28city%29 

在目標頁面上,當我嘗試從數據庫中獲取這個城市時,它返回false。它沒有找到任何行。

SELECT * from citys WHERE title = 'Qazvin (city)' 
    boolean false 
(i print out the query in the page ) 

如果我從PHPMyAdmin SQL控制檯複製並運行它,它將返回幾行。我只有用

我使用MVC框架這個特殊的城市問題

控制器:

public function city($title=' '){ 

    $title = urldecode($title); 
    $city = $this->m_wiki->getCITY($title); 
    echo $this->db->last_query(); 
    var_dump($city); 
} 

型號:

public function getCITY($title){  
     $city = $this->db->query("SELECT * from citys WHERE title = '$title'"); 
     if($city->num_rows() > 0) 
     return $city; 
     return false; 
    } 
+0

1.爲什麼會有兩個'return'語句? 2.爲什麼要連接SQL查詢? 3.你的問題是什麼? –

+0

這兩個返回語句在那裏,因爲第一個屬於前面沒有花括號的'if'。這對於「快速」編程來說是一個壞習慣,並且應該導致致命的錯誤,但可悲的是不會。 – Sven

回答

0

不要urldecode() - 這是錯的有因爲PHP已經自動爲你做了這個。

避開您的查詢!該部分缺失,但必須完成,因爲這不僅對於安全至關重要,而且還會使您的查詢處理非標準字符。