2017-08-23 42 views
0

我正在使用codeigniter來構建一個應用程序,而我在代碼中真的很遠。mysql php不能使用「like」作爲列標題

我有一個列標題ID,頁面,用戶等表。現在問題是,在mysql查詢中,我意識到我不能使用列名稱這個詞作爲它的一個sql關鍵字。

我不能將列名從類似的改爲別的東西,因爲這意味着要更改100行的php代碼。

有什麼我可以做的,以克服世界的衝突像?

這裏是我的意思

$like_variable = 100; 
$query = $this->db->query("SELECT * FROM `table_name` 

      WHERE id ='" . $qry . "' AND 

      page = '" . $_SESSION['p_id'] . "' AND 

      user_id = '" . $_SESSION['user_id'] . "' AND 

      like = '" . $like_variable . "' 

      "); 
      // i think i cant use the world like above but I cant change the column header 

的任何解決方案,將事先

+1

「像」 是SQL的保留字。如果你用後面的剔號包裝它們,你可以使用保留字作爲列名:'''就像''''something''一樣。您還應該使用[Prepared Statements](準備好的語句)(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php),而不是連接您的查詢。 –

+0

謝謝:)我已經嘗試'喜歡',但它不工作。即使當我嘗試「頁面」時,它似乎不能與額外添加的單引號一起使用。任何想法 – mark

+0

它應該是_backticks_,而不是單引號。巨大差距。 –

回答

2

更改like到:

`like` 

結果:

$like_variable = 100; 
$query = $this->db->query("SELECT * FROM `table_name` 

     WHERE id ='" . $qry . "' AND 

     page = '" . $_SESSION['p_id'] . "' AND 

     user_id = '" . $_SESSION['user_id'] . "' AND 

     `like` = '" . $like_variable . "' 

     "); 
+0

謝謝:)我已經嘗試'喜歡',但它不工作。即使當我嘗試「頁面」時,它似乎不能與額外添加的單引號一起使用。任何想法 – mark

+1

它不是'它是' –

+1

試圖格式化您的答案一點,以正確顯示背部打勾。回答中很難在內聯代碼塊中顯示這些回刻號。 :-) –

3

在SQL感激感謝,您可以使用關鍵字作爲列名。把它們包裹在``中。

SELECT * from `table_name` WHERE `like` = 100 
+0

謝謝:)我曾嘗試'喜歡',但它不工作。即使當我嘗試「頁面」時,它似乎不能與額外添加的單引號一起使用。任何想法 – mark