2016-04-18 38 views
0

對不起,這個非常初級的問題...我有一個像檢查,如果文本匹配PHP的MySQL(初級)

| id | block_1 | block_2| 
------------------------- 
| 1 | Mark | John | 
| 2 | Antony |  | 
------------------------- 

我要檢查,如果在單元格中的文本我如$ name變量匹配表:

... 
$sql = "SELECT * FROM my_table WHERE id='1'"; 
$res = mysql_query($sql, $connection); 
$row = mysql_fetch_array($res); 


$block1 = $row['block_1']; 
$name = 'Mark'; 

if ($block1 == $name) 
{ 
echo 'yes'; 
} 
else 
{ 
echo 'no'; 
} 

,但我認爲我的推理是錯誤的,即時通訊初學者...所有的解決方案,歡迎

+1

你應該避免使用mysql_ *函數。他們不再安全使用,並且很快就會從整個語言中刪除。 –

+0

備註:如果您正在學習,不要浪費時間研究遺留的mysql擴展,該擴展已被使用多年,不再是最新的PHP版本的一部分。這就像在羅馬假期前學習拉丁文。 –

+0

謝謝你的建議 – gege

回答

-1

您可以使用請求的變量對結果進行計數。

$sql = "SELECT COUNT(*) as total FROM my_table WHERE id='1' AND block_1='Mark'"; 
$res = mysql_query($sql, $connection); 
$row = mysql_fetch_assoc($res); 
echo $row['total'] > 0 ? 'yes' : 'no'; 
+0

你應該*解釋*你的回答 –

+0

爲什麼不做'block_1 ='Mark''而不是'block_1 ='{$ name}''? – Amous

+0

如果他想使用變量;) –

-1

你只是缺少一個報價有

$sql = "SELECT * FROM my_table WHERE id='1'"; 
+0

謝謝你,我編輯帖子 – gege

0

試試這個:

$sql = 'SELECT * FROM my_table WHERE id="1"'; 

它可能有助於使用雙引號堅持只對單引號的中端。這不是必要的......但它總是幫助我在實踐中試圖追蹤它們。如果你選擇一個,記得要堅持下去....你在下面的代碼的其餘部分使用單引號:

$name = 'Mark'; 
echo 'yes'; 

以上說法是正確的....
這是一個貶值請考慮以下事項:Are there any security benefits to using PDO::query vs. mysql_query? 將mysql_query()切換到PDO :: query()並學習它的功能如何使您保持最新狀態。

祝你好運。

+0

單引號與雙引號不僅僅是一個偏好問題:http://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-引用和雙引號字符串在PHP – WillardSolutions

+0

謝謝你,我必須研究 – gege

+0

@EatPeanutButter ...非常真實 - 我認爲你的鏈接是非常有幫助的。 – n8thanael