2016-07-10 4 views
0

私はPHPで初心者です。私は単に自分のデータベースにアクセスしようとしています。ここにコードがあります。私はデータベースにアクセスするためのオブジェクト指向のスタイルを使用しています。 「25行目の非オブジェクトのプロパティを取得しようとしています」と表示されます。 私は何が欠けていますか?php-mysqlのオブジェクト指向スタイルを使用してmysqlテーブルからデータにアクセスできません

<?php 


$servername = "localhost"; 
//$username = ""; 
//$password = ""; 
$database = "MyPetProject"; 

$conn = new mysqli ($servername, $database); 

if ($conn-> connect_error) 
{ 
die ("Connection failed : " . $conn->connect_error); 
} 
else 
{ 
echo "Connection Successfull"; 
} 


$sql = "SELECT * FROM User"; 

$result = $conn->query($sql); 

if($result->num_rows > 0) 
{ 
    while($row = $result->fetch_assoc()) 
    { 
     echo $row["Sr.no"] . " " . $row["Name"] . " " . $row["Online"]; 
    } 

} 
else 
{ 
    echo "0 results"; 
} 



echo ("hello world"); 


$conn->close(); 

?> 
+0

ライン25上では何ですか?最初にデータベース接続を確認してください。 [http://php.net/manual/en/mysqli.construct.php](http://php.net/manual/en/mysqli.construct.php) –

+0

「接続に成功しました」というメッセージが表示されます。私はデータベース接続がうまくいくと思います。これは25行目です:if($ result-> num_rows> 0) –

+0

* hmm *、 '$ result'はオブジェクトではありません。成功すると、 'SELECT'は' mysqli_result'オブジェクトを返し、失敗するとfalseを返します。したがって、クエリの実行に失敗し、デバッグできません。この場合、mysqli :: $ error'はあなたを助けてくれました。[http://php.net/manual/en/mysqli.error.php](http://php.net/manual/en/mysqli.error .php) –

答えて

0

編集以下: しばらく($行= $ result-> FETCH_ASSOC($結果)) そしてそれは、ここで自分の質問に答える

+0

Nope。動作しません。それは、 "if($ result-> num_rows> 0)"の行に対して "非オブジェクトのプロパティを取得しようとしています"と答えています。 –

+0

@Satty、while($ row = $ result-> fetch_assoc()){正しいです、[http://php.net/manual/en/mysqli-result.fetch-assoc.php#refsect1-mysqli-result.fetch-assoc-examples](http://php.net/manual/en /mysqli-result.fetch-assoc.php#refsect1-mysqli-result.fetch-assoc-examples)。問題は別のところです。 –

0

を動作するはずです。

私は$ usernameと$ passwordにコメントしました。

これらはmysqliの必須パラメータです。残りのコードは完璧です。 (それはあなたの問題を解決しなければならない)のような

0

まず同封のユーザーテーブル:あなたはまた、しかし、我々は常に使用(

を準備使用してクエリを書くことができます

$sql = "SELECT * FROM `User`"; 

​​

準備()文;)

$query = $conn->prepare("SELECT * FROM `User`"); 

も(必ず確認してください)エラーを確認してください。

if (!$conn->query("SELECT * FROM `User`")) { 
    printf("Error: %s\n", $conn->error); 
} 

をあなたはこのNUM_ROWS作品を作る問題がある場合、あなたは宣言する必要があります - >のstore_result()最初。

$conn= new conn("localhost","root", "", "tables"); 

    $query = $conn->prepare("SELECT * FROM `User`"); 
    $query->execute(); 
    $query->store_result(); 

    $rows = $query->num_rows; 

    echo $rows; 

    // Return 4 for example 
0

あなたは、MySQLデータベースにアクセスするためのユーザー名とパスワードを必要とする必要があります。

$mysqli = new mysqli("localhost", "user", "password", "database"); 

これは、それぞれ第2および第3のパラメータである。

このリンクに関連するすべてのドキュメントがあります。

http://php.net/manual/en/mysqli.quickstart.connections.php

関連する問題