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

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

id  msg
1  'Hello'
2  'Bye'

我需要获取“id”的“msg”值。
这是我的尝试:
$text = mysql_query("SELECT msg FROM text WHERE text (id) ='$msg_num'");

但它不起作用 :( 你有什么建议吗? 谢谢

5个回答

9

删除 文本

$result = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'");
while ($row = mysql_fetch_array($result)) 
{
    $text = $row['msg'];  
}

你的代码存在SQL注入漏洞,请阅读下面的文章:

如何在PHP中防止SQL注入?


mysql_query 返回的是一个资源,而不是 msg 的文本。如果你想要文本值,你需要进行获取。 - Al_

3

变更

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

To

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

这种类型的查询可能导致MySQL注入攻击,因此使用准备语句可以有效防止一级注入。

1)Mysqli

2)PDO


谢谢。我得到了类似“资源ID#15”的东西,我需要里面的值。有什么建议吗? - slwr
你需要使用mysql_fetch_array()从资源中获取数据。 - GBD
使用mysql_fetch_array($result) - NullPoiиteя

2
select id from text where id = '$msg_num'

这个查询的不同之处在于它选择了列。没有名为“msg”的列,那是它的值。

编辑:对不起,我把表格读错了(侧着看)。


1

语法错误。

$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()来诊断此类问题。


1
$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接