从SQL数据库中显示随机行

时间:2014-07-27 14:44:50

标签: php sql

我已经工作了好几天了,我已经走到了尽头。在与GoDaddy支持人员交谈后,我很肯定我在运行脚本时拥有正确的主机名,用户名/密码,但仍然无法通过die()

最终我试图从数据库中提取一个问题。我已经梳理了这个网站,但我发现的任何内容似乎都没有回答我的问题。请帮忙。

<?php
    $hostname='localhost';
    $username='username';
    $password='password';
    $dbname='qod';
    $usertable='Questions';
    $userfield='question';

    mysql_connect($hostname,$username, $password) or die ("<html><script language='JavaScript'>alert('Unable to access the Question of the Day! Please try again later.'),history.go(-1)</script></html>");
    mysql_select_db($dbname);
    # Check If Record Exists

    $query = 'SELECT $.userfield FROM $.usertable ORDER BY RAND() LIMIT 1';
    $result = mysql_query($query);

    if($result){
        while($row = mysql_fetch_array($result)){
            $name = $row[$yourfield];
        echo "Name: ".$name;}
    }
?>

1 个答案:

答案 0 :(得分:2)

您正在使用SELECT变量的点,而不应该有任何。

SELECT $.userfield FROM $.usertable,然后通过以下方式调用它们:

$usertable='Questions';
$userfield='question';
从您的SELECT中

删除并使用正确的error reporting技术,例如:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of code

or die('Could not connect: ' . mysql_error()); 

您的列名称中还有[$yourfield]的美元符号;也删除它。

您应该使用引号:I.e。:['yourfield'] - yourfield是您希望显示的表格中的列名。


<强>脚注:

mysql_*函数弃用通知:

http://www.php.net/manual/en/intro.mysql.php

从PHP 5.5.0开始,不推荐使用此扩展,不建议用于编写新代码,因为将来会删除它。相反,应使用mysqliPDO_MySQL扩展名。在选择MySQL API时,另请参阅MySQL API Overview以获得进一步的帮助。

这些功能允许您访问MySQL数据库服务器。有关MySQL的更多信息,请访问»http://www.mysql.com/

可以在»http://dev.mysql.com/doc/找到MySQL的文档。

使用mysqli_* with prepared statementsPDOprepared statements