0

1行目でデータベースに接続するのが面倒だとわかりました。もう接続エラーは発生しません。しかし、データベースが選択されていないというエラーは表示されません。問題は何ですか?私のコードは正しいですか?

PHPでmysqlデータベースから初めて読み取る。助けてくれてありがとう。

<?php     

if (!($con = mysql_connect('host', 'user', 'pw'))) { 
   die('Connect failed: ' . mysql_error()); 
} 

mysql_select_db("my_db", $con) or die('Error select: '.mysql_error()); 



$result = mysql_query ('SELECT * FROM Gallerys') or die ('Error query: '.mysql_error ());

echo "<table border='1'>
 <tr>
 <th>Thumb Url </th>
 <th>Gallery Url</th>
 </tr>";

while($row = mysql_fetch_array($result))
   {
   echo "<tr>";
   echo "<td>" . $row['THUMBURL'] . "</td>";
   echo "<td>" . $row['GALLERYURL'] . "</td>";
   echo "</tr>";
   }
 echo "</table>";

mysql_close($con);
 ?> 
4

2 に答える 2

2

あなたの接続コードは を使用してmysql_connectいますが、エラーチェックは を使用していますmysqli:

if (mysqli_connect_errno()) {
    exit('Connect failed: '. mysqli_connect_error());
}

次のように更新してみてください。

if (!($con = mysql_connect('host', 'user', 'pass'))) {
    die('Connect failed: ' . mysql_error());
}

または、関数へのすべての参照を更新して、mysql_*関数を実際に使用することもできますmysqli_*。これが推奨されます。これは目前の問題を解決するための長い道のりですが、問題も解決するはずです。

mysqli を使用したサンプル:

$con = mysqli_connect('host', 'user', 'pass', 'db_name');
if (!$con) {
    die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}
于 2012-08-29T23:14:51.560 に答える
2

関数の削除に加えてmysqli_...、次の操作を行います。

mysql_select_db("my_db", $con) or die('Error: '.mysql_error());

これにより、データベースを選択したときに何が起こったかがわかります。my_db を持っていないか、それを開く権限がないに違いありません。


このスレッドをフォローしている人への最終的な結果 - 問題はデータベースの名前にありました。それは my_db ではなく、別のものでした。

于 2012-08-29T23:35:58.600 に答える