簡體   English   中英

來自 PHP 的 DB 查詢沒有給出結果,但 phpMyAdmin 上的相同查詢有效嗎?

[英]DB query from PHP gives no result but same query on phpMyAdmin works?

所以我有一個簡單的查詢來檢查 mySQL 數據庫中的文章並回顯 HTML 代碼以動態生成我的博客。 當我直接使用 phpMyAdmin 運行該查詢時,該查詢有效,但從 .php 文件調用時,它顯示“無結果”。 這是查詢:

SELECT * FROM article ORDER BY article_timestamp DESC LIMIT 4;

在 phpMyAdmin 上測試時運行良好。 但是當它在我的 php 代碼中時它沒有。 PHP代碼如下:

<?php

// establish connection
function connect() {
    $connection = mysql_connect ("localhost", "user", "password", "dbname") or die(mysql_error);

    return $connection;
}

$connection = connect();


// define article variables

$article_id;
$article_title;
$article_headline;
$article_image_path;
$article_body;
$article_author;
$article_tags;
$article_timestamp;

$myquery = "SELECT * FROM article ORDER BY article_timestamp DESC LIMIT 4";

$result = mysql_query($connection, $myquery);

if (mysql_num_rows($result) > 0) {

    while($row = mysql_fetch_array($result)) {
        $article_id = $row['article_id'];

        $article_title = $row['article_title'];

        $article_headline = $row['article_headline'];

        $article_image_path = $row['article_image_path'];

        $article_body = $row['article_body'];

        $article_author = $row['article_author'];

        $article_tags = $row['article_tags'];


        $article_timestamp = $row['article_timestamp'];

        echo "<!-- Blog Post -->
                <h2>
                    <a href=\"post.php?id=$article_id\">$article_title</a>
                </h2>
                <p class=\"lead\">
                    by $article_author
                </p>
                <p>Posted on $article_timestamp</p>
                <hr>
                <img class=\"img-responsive\" src=\"$article_image_path\" alt=\"\">
                <hr>
                <p class=\"lead\">$article_headline</p>
                <a class=\"btn\" style=\"border-color: #4c044d;\" href=\"post.php?id=$article_id\">Read More</a>

                <hr>";
    }
}

else {
    echo 'No Results found';
}

mysql_close ($connection);
?>

數據庫連接應該工作正常。 我添加了這個代碼:

if ($connection == false) {
   echo 'whoops';
}

當它被放置在不同的檢查點時,條件永遠不會滿足。 有人可以幫我一把嗎? 花了幾個小時,沒有骰子。 提前致謝。

請更改您的連接功能,如下所示

$connection = mysql_connect ("localhost", "root", "redhat") or die(mysql_error());
    mysql_select_db('test');

另外請使用 mysqli,因為 mysql 在新版本的 php 中已棄用

不推薦使用 MYSQL_* 嘗試使用 mysqli_* 或 PDO

警告 mysql_query、mysql_fetch_array、mysql_connect 等。擴展在 PHP 5.5.0 中被棄用,並在 PHP 7.0.0 中被刪除。 相反,應使用 MySQLi 或 PDO_MySQL 擴展。

        <?php

    // establish connection
    function connect() {

        $servername = "localhost";  //host name

        $username = "username"; //username

        $password = "password"; //password

        $mysql_database = "dbname"; //database name

        $connection = mysqli_connect($servername, $username, $password,$mysql_database) or die("Connection failed: " . mysqli_connect_error());

        return $connection;
    }

    $connection = connect();

    $myquery = "SELECT * FROM article ORDER BY article_timestamp DESC LIMIT 4";


     $stmt = $connection->prepare($myquery );

                    //The argument may be one of four types:

                    //i - integer
                    //d - double
                    //s - string
                    //b - BLOB
                    //change it by respectively 

                    $stmt->execute();

                    $get_result =$stmt->get_result();

                    $row_count= $get_result->num_rows;


    if ($row_count > 0) {

        while($row = mysqli_fetch_array($get_result)) {
            $article_id = $row['article_id'];

            $article_title = $row['article_title'];

            $article_headline = $row['article_headline'];

            $article_image_path = $row['article_image_path'];

            $article_body = $row['article_body'];

            $article_author = $row['article_author'];

            $article_tags = $row['article_tags'];


            $article_timestamp = $row['article_timestamp'];

            echo "<!-- Blog Post -->
                    <h2>
                        <a href=\"post.php?id=$article_id\">$article_title</a>
                    </h2>
                    <p class=\"lead\">
                        by $article_author
                    </p>
                    <p>Posted on $article_timestamp</p>
                    <hr>
                    <img class=\"img-responsive\" src=\"$article_image_path\" alt=\"\">
                    <hr>
                    <p class=\"lead\">$article_headline</p>
                    <a class=\"btn\" style=\"border-color: #4c044d;\" href=\"post.php?id=$article_id\">Read More</a>

                    <hr>";
        }
    }

    else {
        echo 'No Results found';
    }


                    $stmt->close();
                    $connection->close();


    ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM