我有以下結構的數據庫:的MySQL - 通過ID獲取從列中的值在PHP
id msg
1 'Hello'
2 'Bye'
,我需要得到的「ID」,「味精」的價值。
這是我的嘗試:
$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
但它不工作:( 你有建議 感謝
我有以下結構的數據庫:的MySQL - 通過ID獲取從列中的值在PHP
id msg
1 'Hello'
2 'Bye'
,我需要得到的「ID」,「味精」的價值。
這是我的嘗試:
$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
但它不工作:( 你有建議 感謝
刪除text
$result = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
while ($row = mysql_fetch_array($result))
{
$text = $row['msg'];
}
你的代碼是SQL Injection
弱勢請閱讀下面的文章,
變化
mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
要
mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
?
這種類型的查詢可能是MySQL Injection攻擊的原因。使用準備好的語句停止使用第一階次注入很好。
1)的mysqli
2)PDO
select id from text where id = '$msg_num'
這個查詢中的不同之處在於它選擇列。沒有名爲「msg」的列,即值。
編輯:對不起,讀表錯誤(橫向)。
+1在這裏刪除'text' WHERE文本(id)' –
語法錯誤。
$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
應該是:
$text = mysql_query("SELECT msg FROM text WHERE id='$msg_num'");
您可以使用mysql_error()
診斷這樣的事情。
$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());
'mysql_query'返回資源而不是文本'msg'。如果需要文本值,則需要獲取。 –