私は記事のためにmySQLデータベースをチェックし、ブログを動的に生成するためにHTMLコードをエコーする簡単なクエリを持っています。クエリはphpMyAdminで直接実行すると動作しますが、.phpファイルから呼び出されると「結果なし」と表示されます。クエリは次のとおりです。PHPのDBクエリは結果は得られませんが、phpMyAdminのクエリは同じですか?
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);
?>
DB接続が正常に動作しているはずです。私はこのコードを追加しました:
if ($connection == false) {
echo 'whoops';
}
そして、条件はさまざまなチェックポイントに置かれても決して満たされません。誰かが私に手を差し伸べることができる?これと数え切れないほどのサイコロで時間を費やしました。 ありがとうございます。
なぜすべての変数を2回宣言しますか? – Thomas
廃止予定の 'mysql_ * '関数を使用しないでください。 PHP 5.5以降では廃止され、PHP 7では完全に削除されています。これらは安全性も欠けています。代わりにMySQLiまたはPDOを使用してください。 –
エラー報告が有効になっていますか?エラーログを確認しましたか? –