3

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

id  msg
1  'Hello'
2  'Bye'

我需要为“id”获取“msg”值。

这是我的尝试:

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

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

4

5 回答 5

9

消除text

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

您的代码易受攻击SQL Injection请阅读下面的文章,

如何防止 PHP 中的 SQL 注入?

于 2012-10-21T17:18:01.763 回答
3

改变

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

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

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

1) mysqli

2)PDO

于 2012-10-21T17:17:18.643 回答
2
select id from text where id = '$msg_num'

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

编辑:对不起,读错了表格(横向)。

于 2012-10-21T17:17:33.223 回答
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()来诊断这样的事情。

于 2012-10-21T17:17:44.823 回答
1
$text = mysql_query("SELECT msg FROM text WHERE id ='$msg_num'") or die(mysql_error());
于 2012-10-21T17:17:54.850 回答