これは本当に簡単な問題かもしれませんが、解決策が見つかりません。 私は単純なphp PDO無効なカタログ名:1046データベースが選択されていません
$query = $conn->query("SELECT * FROM dbName.users");
すべてがうまく動作しますが、DBNAMEせず、それはエラーが発生している場合:それはDBNAMEでのみ動作し、なぜ、ここで
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected.
が
$Host = "localhost";
$Name = "test";
$User = "test";
$Password = "";
try {
$conn = new PDO("mysql:host=$Host;dbName=$Name", $User, $Password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = $conn->query("SELECT * FROM users");
while($r = $query->fetch()){
echo $r['login']." ".$r['pass']."<br>";
}
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
は誰もが知っていたコードですテーブル名の前に?どうすれば修正できますか? ありがとう!
データベース名を指定しないと、データベースが選択されていないことがわかります。 – GrumpyCrouton
接続文字列にデータベースを指定しているようです。これはあなたが使用している実際のコードですか? –
ええ、私はデータベース名を含んでいないとき、私はデータベースが選択されていないと言います。私は "SELECT * FROM $ Name.users"を実行すると動作しますが、db名を何度も繰り返し書き込むことを避ける方法はありますか?それはテーブル名でのみ動作できますか? – nihai1234