MySQL-在PHP中通过ID从列中获取值

MySQL-在PHP中通过ID从列中获取值,php,mysql,Php,Mysql,我有一个具有以下结构的数据库: id msg 1 'Hello' 2 'Bye' 我需要得到“id”的“msg”值 这是我的尝试: $text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'"); 但它不起作用:( 你有什么建议吗? 谢谢你的改变 mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'"); 到 这种类型的查询可能是攻击的

我有一个具有以下结构的数据库:

id  msg
1  'Hello'
2  'Bye'
我需要得到“id”的“msg”值

这是我的尝试:

$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
但它不起作用:( 你有什么建议吗? 谢谢你的改变

mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");

这种类型的查询可能是攻击的原因。使用准备好的语句停止一阶注入非常好

1) Mysqli

2) PDO

此查询的区别在于它选择列。没有名为“msg”的列,这是值

编辑:对不起,把表格看错了(从侧面看)

语法错误

$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");
应该是:

$text = mysql_query("SELECT msg FROM text WHERE id='$msg_num'");

您可以使用
mysql\u error()
诊断类似的问题。

删除
text

$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());
$result = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
while ($row = mysql_fetch_array($result)) 
{
    $text = $row['msg'];  
}
您的代码易受
SQL注入攻击
请阅读下面的文章


谢谢。我得到类似“资源id#15”的东西,我需要里面的值。建议?您需要使用mysql\u fetch\u array()从资源获取数据使用mysql\u fetch\u array($result)
mysql\u query
返回资源,而不是
msg
的文本。如果需要文本值,则需要获取。
$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());
$result = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
while ($row = mysql_fetch_array($result)) 
{
    $text = $row['msg'];  
}