为什么这个PHP mysql_query从我的数据库中获取正确的信息?

时间:2012-07-14 17:10:15

标签: php mysql database arguments

我对此比较陌生,如果我在错误的地方发帖,那就很抱歉。 我在我的数据库中有一个表,它包含4个东西 - id,时间输入和用户和消息(用于基本的聊天室风格的东西)。 我正在尝试使用PHP页面调用它们。但是当我在地址栏中输入一个参数时,我的页面才会返回空白。我试图调用它,以便只显示用户列中具有特定用户的行。我的代码在下面 - 任何人都可以看到我做错了什么? 该文件的网址为http://freedom-apps.co.uk/chat/messages.php。你会看到一大堆条目 - 一开始就有你自己。 U表示用户输入,m表示消息。所以我尝试过: http://freedom-apps.co.uk/chat/messages.php?user=u 返回错误。有任何想法吗? 我的代码是:

<?php
header( 'Content-type: text/xml' );
mysql_connect('localhost:/var/lib/mysql/mysql.sock', 
              'freedom_ASAPPS', '********');
mysql_select_db( 'freedom_chat_alpha' );
if ( $_REQUEST['user'] ) {
    $user = mysql_escape_string($_REQUEST['user']);
    $result = mysql_query('SELECT * FROM chatitems WHERE user = '$user' 
              ORDER BY added LIMIT 50');
} else {
    $result = mysql_query('SELECT * FROM chatitems ORDER BY added LIMIT 50');    
}
?>
<chat>
<?php
while ($row = mysql_fetch_assoc($result)) {
?>
<message added="<?php echo( $row['added'] ) ?>" 
    id="<?php echo( $row['id'] ) ?>">
    <user><?php echo( htmlentities( $row['user'] ) ) ?></user>
    <text><?php echo( htmlentities( $row['message'] ) ) ?></text>
</message>
<?php
}
var_dump($result);
mysql_free_result($result);
?>
</chat>

我认为第6行和第7行有问题,或者我用参数调用php页面的方式(参见上文)。我指的是我用来学习这些东西的书,但仍然无法弄明白(学习PHP,MySQL和JavaScript:创建动态网站的循序渐进指南)。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:6)

$result = mysql_query('SELECT * FROM chatitems WHERE user = '$user' ORDER BY added LIMIT 50');

这是一个语法错误 - 你缺少字符串连接运算符:

$result = mysql_query('SELECT * FROM chatitems WHERE user = ' . $user . ' ORDER BY added LIMIT 50');
                                                            ^^^------^^^^--- here

或者,使用双引号字符串:

$result = mysql_query("SELECT * FROM chatitems WHERE user = '$user' ORDER BY added LIMIT 50");

获取空白页面表明您已在php.ini中关闭了display_errors。你应该在调试/开发时打开它。你只是在脚下射击,隐藏了那些会告诉你问题是什么的信息。

相关问题