2016-10-29 14 views
-1

私はPHPを初めて使用しています。定義されていないオフセット:dbに接続中のPHPで0

不定オフセット:ライン0

:私はこのスクリプトを実行すると

私はエラーメッセージを取得($行= mysql_fetch_assoc($結果)){ エコー$一方行['0'];ここで

<?php 

    if (!$link = mysql_connect('localhost', 'root', '')) { 
     echo 'Could not connect to mysql'; 
     exit; 
    } 

    if (!mysql_select_db('first_db', $link)) { 
     echo 'Could not select database'; 
     exit; 
    } 

    $sql = 'SELECT * FROM users WHERE id = 3'; 
    $result = mysql_query($sql, $link); 

    if (!$result) { 
     echo "DB Error, could not query the database\n"; 
     echo 'MySQL Error: ' . mysql_error(); 
     exit; 
    } 

    while ($row = mysql_fetch_assoc($result)) { 
     echo $row['0']; 
    } 

    mysql_free_result($result); 

    ?> 

は、データベースに接続する別のスクリプト、ここで構文$row['0']が働いているです。

<?php 
//Step1 
$db = mysqli_connect('localhost','root','','first_db') 
or die('Error connecting to MySQL server.'); 
?> 

<html> 
<head> 
</head> 
<body> 
<h1>PHP connect to MySQL</h1> 

<?php 
//Step2 
$query = "SELECT * FROM users"; 
mysqli_query($db, $query) or die('Error querying database.'); 

//Step3 
$result = mysqli_query($db, $query); 
//$row = mysqli_fetch_array($result); 

while ($row = mysqli_fetch_array($result)) { 
echo $row[0] . ' ' . $row[1] . ': '. $row[2] .'<br />'; 
} 
//Step 4 
mysqli_close($db); 
?> 

</body> 
</html> 

どのように2番目のスクリプトのために動作しますが、最初ではないrow['0']構文が来ますか?

btw私のデータベースはfirst_dbと呼ばれ、usersというテーブルがあります。 3列あります。 ID、ユーザー名、およびパスワードという名前です。

+1

'mysql_fetch_assoc()'と 'mysqli_fetch_array()'のマニュアルを読んで、それらが返すものを見てください。 – Rizier123

+1

(1)正式に廃止され、(2)mysqli_対応版が動作しているときに、なぜmysql_関数に戻りますか? – Terry

答えて

0

いいえ、実際にはうまくいかない理由は、実際には2つのものの組み合わせです。最初に、mysql_Fetch_assoc()を使用して、連想配列を返す(https://stackoverflow.com/users/6946846/andrew-wilsonとして)。次に$row['0']$row[0]と同じではありません。という名前の配列の要素がという文字列で最初にチェックされ、2番目の要素が配列の最初の(数値)キーを調べます。

関連する問題