1

我对此比较陌生,如果我在错误的地方发帖,请见谅。我的数据库中有一个表,其中包含 4 项内容 - id、输入时间以及用户和消息(对于基本的聊天室样式)。我正在尝试使用 PHP 页面调用这些。但是当我在地址栏中输入参数时,我的页面只是返回空白。我正在尝试调用它,以便仅显示用户列中具有特定用户的行。我的代码如下 - 任何人都可以看到我做错了什么吗?该文件的 URL 是http://freedom-apps.co.uk/chat/messages.php。您会看到大量条目 - 在开始时,有 umumu m。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 页面的方式(见上文)。我指的是我用来学习这些东西的书,但仍然无法弄清楚(Learning PHP, MySQL, and JavaScript: A Step-by-Step Guide to Creating Dynamic Websites)。

谢谢,山姆

4

1 回答 1

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。您应该在调试/开发时打开它。你只是在射击自己的脚,隐藏了本来可以告诉你问题所在的信息。

于 2012-07-14T17:13:19.010 回答