为什么我的SQL结果不会在PHP网站上打印出来?

时间:2014-10-21 14:16:16

标签: php mysql database connection

我遇到了这段代码的真正问题,基本上我有一个外部服务器,我试图调用它并将数据添加到一个PHP数据站点。但是由于某种原因,在阅读了关于这个主题的负载后,我仍然无法使其工作。

以下代码如下,这是我想到的概念,但出于某种原因,我没有运气让它正常工作?

非常感谢任何帮助:

<html> 
     <head>
     </head>
     <body>
         <?php
            // Determine Yesterday
            date_default_timezone_set('Europe/London');
            $m= date("m"); // Month value
            $de= date("d"); //today's date
            $y= date("Y"); // Year value
            $yd = date('d', mktime(0,0,0,$m,($de-1),$y)); 
            $ym = date('m', mktime(0,0,0,$m,($de-1),$y)); 
            $yy = date('Y', mktime(0,0,0,$m,($de-1),$y)); 

            $yest = $yy.'-'.$ym.'-'.$yd;
            $cd = date("Y-m-d");

            // Make a MySQL Connection
            ini_set('mysql.connect_timeout', '240');

            // Make a MySQL Connection
            $con=mysql_connect("location", "Username", "Password");

            // Check MySQL connection
            if (mysql_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysql_connect_error();
            }

            $Test= mysql_query("SELECT * FROM DB1.Table WHERE date(DateCreated) between '$yest' and '$yest'")   or die(mysql_error()); 

            echo "<table border='1'>
            <tr>
            <th> DataField1 </th>
            </tr>"

            while($row=mysql_fetch_array($Test)){
                echo "<tr>
                <th>" .$row['DataField1']. "</th>
                </tr><tr>
                <th>" .$row['DataField2']. "</th>
                </tr>";
            }
            echo"</table>";

            mysql_close($con);
        ?>

    </body>
    <footer>
    </footer>
 </html>

我确信这是一个非常明显的问题,但我对数据库连接有点新手。当前代码在加载时不会在网页上产生任何内容。

2 个答案:

答案 0 :(得分:1)

元级错误:

date(DateCreated) between '$yest' and '$yest'

基本上是

的罗嗦/无用版本
date(DateCreated) = '$yest'

如果那应该是&#34;昨天&#34;,那么你所有的PHP日期修改代码都毫无意义。您可以直接在数据库中轻松完成:

WHERE date(DateCreated) = (CURDATE() - INTERVAL 1 DAY)

功能错误:

        if (mysql_connect_errno()) {

此功能不存在。 mysql _ *()函数只返回boolean FALSE,你可以这样检查:

$db = mysql_connect(...);
if ($db === FALSE) {
   die(mysql_error());
}

答案 1 :(得分:-1)

对于mysql_fetch_array:mysql_fetch_array($Test,MYSQL_ASSOC)或使用$ row [0]而不是$ row ['DataField1']。您正在获得常规数组,但尝试将其用作关联数组