2017-08-13 30 views
0

このコードでは何がうまくいかないのですか?私は、コンテンツの下にデータベースに保存された段落を持っていますが、何らかの理由でそれを表示することができません。どんな助けでも大歓迎です、私は新しい開発者であり、フィードバックを歓迎します。PHPとMySQLのデータベース接続

<?php 
require_once('db_connection.php'); //connection credentials 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

$sql = "SELECT content FROM content"; 
$result = mysqli_query($conn, $sql); 

while($row = mysqli_fetch_row($result)) { 
    echo $row; 
} 

mysqli_close($conn); 
?> 

答えて

1

echo $row;エコーしたい列のオブジェクトの配列自体がありません。

何が欲しいのはecho $row[0];

はしかし、列とテーブル名の両方が同じなので、それは確かに正しいことを確認しています。マニュアルを1として

例は、マニュアルから引っ張っ:

$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5"; 

if ($result = mysqli_query($link, $query)) { 

    /* fetch associative array */ 
    while ($row = mysqli_fetch_row($result)) { 
     printf ("%s (%s)\n", $row[0], $row[1]); 
    } 

    /* free result set */ 
    mysqli_free_result($result); 
} 

を上記に失敗した場合、それはあなたのクエリが失敗している可能性があることを意味するかもしれませんmysqli_error($conn)を使用してクエリのエラーをチェックする必要があります。

参考:

同じことが、接続のために行きます。

参考:マニュアルから

例:

<?php 
$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 

if (!$link) { 
    echo "Error: Unable to connect to MySQL." . PHP_EOL; 
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
    exit; 
} 

echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL; 
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL; 

mysqli_close($link); 
?> 
+0

ワンダフル、助けてくれてありがとう。今度は、そのコードブロックを何回か使用する必要がある場合は、それを関数の右側に入れるのが最善でしょうか?しかし、もし私がそうするなら、どの行が表示されるかをどうやってコントロールするのですか? – Rjoel98

+0

@ Rjoel98ようこそ。何度か何かを表示する必要がある場合、それは正確に「方法」に依存し、これを行うための複数の方法があります。関数を使うつもりならば、db接続を関数内に渡す必要があります。そうしないと、可変スコープの問題が発生します。変数のスコープについてはStack on https://stackoverflow.com/q/16959576/1415724のQ&Aをご覧ください。別のページを横断したい場合は、このhttp://php.net/manual/en/book.session.phpにセッションを使用するか、ファイルをインクルードする必要があります。 –

+0

@ Rjoel98あなたについて:*「もし私がそれをすれば、どの行が表示されるかをどうやって制御するのですか?」 - 再び、これを行うための多くの方法。 '[0]'と '[1]'オブジェクト配列は、マニュアルで引っ張った例に示すように、クエリで選択したシーケンスのどの列を制御します。 http://php.net/manual/en/class.mysqli-result.php - mysqli_fetch_assoc()のような他の関数を使用することもできます。例えば、連想配列 '$ row [" Name " ]、$ row ["CountryCode"] 'のようになります。そのページの他の機能を参照してください。 –

関連する問題