0

HTML にデータベース エントリを取得しようとしていますが、問題が発生しています。このサイトでヘルプを検索してみましたが、残念ながらさらに多くのエラーが表示されます。特にこれはエラーではなく、単に間違ったことを出力するだけです。

    <?php
        $query="SELECT * FROM maincontent";
        $result=mysql_query($query);

        echo $result;
    ?>

結果は「リソース ID #4」です。データベース テーブルにそのようなエントリはありません。何が間違っているのかわかりません。これはこれまでで最も簡単な質問の 1 つに違いないので、私が PHP を初めて使用することがわかると確信しています。

4

3 に答える 3

6

配列を取得してループする必要があります...

    $query="SELECT * FROM maincontent";
    $result=mysql_query($query);
    while($row = mysql_fetch_array($result)){
         echo $row[0];
    }

しかし、非推奨の mysql_* 関数を使用するべきではなく、代わりに PDO を使用してください... http://php.net/manual/en/book.pdo.php

ここでは PDO を使用します...将来的には、代わりに PDO を確実に学習して使用する必要があります。

//Your connection data...
$conn = new PDO("mysql:host=$hostdb; dbname=$namedb", $userdb, $passdb);

// Define and perform the SQL SELECT query
$sql = "SELECT * FROM maincontent";
$result = $conn->query($sql);

// Parse returned data, and display them
 while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    echo $row[0];
 }
于 2013-06-09T23:38:06.600 に答える
1

あなたのコードは、データベースからデータを取得せずにデータベースにクエリを実行するだけです。

データを取得するには、次のようにコードを完成させます。

<?php
while($rows = mysql_fetch_assoc($result)
{
   echo $rows['database_column_here'];
}
?>
于 2013-06-09T23:39:45.280 に答える
0

コードのエラーを指摘し、関数の使用をやめるべき理由とともに、PDO の例を提供した人もいますmysql_*。これらの理由に加えて、mysql インジェクションに対してより脆弱であることを付け加えたいと思います。また、mysqliで同じことを行うコードを投稿したいと思います。PDO を使用すると柔軟性が向上しますが、すぐに切り替える必要がある場合は mysqli を使用することをお勧めします。mysql_*

$mysqli = new mysqli("localhost", "my_user", "my_password", "database");

/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}

$result = $mysqli->query("SELECT * FROM maincontent");

while ($row = $result->fetch_assoc())
printf ("%s \n", $row["COLUMN_NAME"]);

$result->free();
$mysqli->close();

これがあなたの決定に役立つことを願っています。この記事も役立ちます。

于 2013-06-09T23:59:03.613 に答える