2017-08-23 7 views
0

私はcodeigniterを使ってアプリケーションを構築しています。mysql phpは "like"をカラムヘッダーとして使用できません

私は、id、page、userなどのカラムヘッダーを持つテーブルを持っています。今問題は、mysqlクエリでは、私は私が信じているsqlキーワードとしてカラム名のような言葉を使用することができませんでした。

私は、PHPの行の100行を変更することを意味するので、私は好きから何かに列の名前を変更することはできません。

私のような世界の衝突を克服するためにできることはありますか?任意の解決策は、SQLで事前

+1

SQLの予約語である "のように"。 '\' like \ '= '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

で感謝のおかげだろう

$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 

ここ

は私が何を意味するかで、あなたは、列名などのキーワードを使用することができます。それらを ``で囲みます。

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

ありがとう:)私は「好き」を試みましたが、うまく動作しませんでした。私が 'ページ'を試しても、追加された一重引用符で動作しないようです。任意のアイデア – mark

関連する問題