2011-03-03 39 views
4

我已經陷入了與報價混亂的混亂。帶有類似查詢的PHP報價

我嘗試這樣做,看起來像這樣

$myQuery = 'SELECT col1 , col2 from my_table WHERE col_value LIKE '%$my_string_variable%'; 

一個類似的查詢,但是該查詢顯然會給出一個錯誤。什麼是正確的語法?我試圖用雙引號搞亂,但那也不管用。

+3

您是否嘗試在查詢周圍添加閃爍標記?!?!?!?瘋狂的人 – 2011-03-03 00:42:30

+0

@Byron閃爍的SQL查詢...爲什麼我沒有想到這一點? – alex 2011-03-03 00:44:17

+0

我現在這麼分散,我不知道我做錯了什麼......把一個閃爍的標籤放在一些東西......什麼......我沒有做對嗎? :) – Genadinik 2011-03-03 00:44:28

回答

5

結合雙引號和單引號。

$myQuery = "SELECT col1 , col2 
      FROM my_table 
      WHERE col_value LIKE '%$my_string_variable%'"; 

雖然我更願意保護我不受SQL注入代碼..

$myQuery = "SELECT col1 , col2 
      FROM my_table 
      WHERE col_value LIKE '%" . mysql_real_escape_string($my_string_variable) . "%'"; 
4

環繞在雙引號整個事情。

$query = "SELECT col1 , col2 from my_table WHERE col_value LIKE '%$my_string_variable%'"; 
+0

將工作,直到該變量包含單引號.. – RichardTheKiwi 2011-03-03 00:55:26

+0

@理查德,沒錯。我會爲此準備好查詢。 – 2011-03-03 00:57:55

1

您在單引號分隔字符串中使用單引號。嘗試使用雙引號引用您的字符串。

1
$myQuery = "SELECT col1 , col2 from my_table WHERE col_value LIKE '%$my_string_variable%'"; 

應該解決你的問題。

1

您使用單引號作爲字符串的開頭,並再次使用單引號「inside」。您可以將其更改爲以下內容:

$myQuery = "SELECT col1 , col2 from my_table WHERE col_value LIKE '%$my_string_variable%'"; 
0

如果您不想打破您的查詢模式,那麼該如何?

$myQuery = 'SELECT col1 , col2 from my_table WHERE col_value LIKE "%' .$my_string_variable . '%"'; 

當您應用單引號時,不要在其中包含php變量,因爲此單引號將其中的所有內容視爲值不可變。