[英]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.