2011-11-02 19 views
5

Tôi đã chọn cơ sở dữ liệu nhưng đối với một số lý do lạ nó vẫn nói rằng nó không được chọn.Lỗi "Không có cơ sở dữ liệu được chọn" ngay cả sau khi một db được chọn

dòng kết nối:

$location = "localhost"; 
$user = "user"; 
$pass = "pass"; 

//Database Selection 
$link = mysql_connect($location, $user, $pass); 
if (!$link) { 
    die('Could not connect: ' . mysql_error()); 
} 
//Database Selection 
mysql_select_db('database') or die(mysql_error()); 

Các truy vấn:

while ($row_fpages = mysql_fetch_array($result_fanpage)) 
{ 
    if ($row_fpages['client'] == NULL) { 

    //GRAPHS 
    $sql = "SELECT date, likes FROM statistics_pages WHERE idnum='".$_COOKIE['id']."' AND page_name = ".$row_fpages['page_name']." LIMIT 7"; 
    $result_apps = mysql_query($sql) or die(mysql_error()); 

Và lỗi này là một đồng bằng No database selected.

Tôi chưa bao giờ thấy lỗi này trước đây và tôi đã cố thay đổi rất nhiều thứ nhưng nó không hoạt động.

+0

Điều này cũng có thể xảy ra nếu lệnh mysql_query của bạn lệnh * trước * lệnh mysql_connect hoặc mysql_selectdb lệnh –

Trả lời

7

Bạn quên truyền biến $ link làm tham số liên kết.

 mysql_select_db('database', $link) or die(mysql_error()); 

EDIT: Hãy thử đi qua các cơ sở dữ liệu trong TỪ tham số như

 SELECT * FROM `database`.`table` 
+0

Điều đó sẽ không cần thiết. Nếu không có liên kết nào được chỉ định, liên kết cuối cùng được mở sẽ được giả định. http://php.net/manual/en/function.mysql-select-db.php – Marcus

+0

Oh yeah? Không biết ... Đó là sự thật. Cảm ơn bạn về thông tin ! –

+0

Tôi nghĩ Marcus là đúng nhưng tôi quyết định kiểm tra điều này và nó không giúp ích gì. – Ricardo

0

Hãy chắc chắn rằng mã của bạn không đưa vào các lớp học và các công cụ, nếu nó chỉ được trình bày như là, thì có lẽ ' cơ sở dữ liệu 'không hợp lệ, hãy kiểm tra kỹ các giá trị của bạn và thử biến nó thành một biến bên ngoài.

+0

'cơ sở dữ liệu' hợp lệ và tôi thậm chí không sử dụng các lớp trong mã của tôi ..: \ – Ricardo

2

Có thể là quyền của người dùng mysql trên cơ sở dữ liệu bạn đang chọn không?

2

Một lý do khác khiến lỗi này xuất hiện là vì tên người dùng và mật khẩu mà bạn đang sử dụng để truy cập cơ sở dữ liệu có thể không có số đọc/ghi thích hợp. Đặc biệt là trên một máy chủ lưu trữ được chia sẻ, bạn sẽ cần gán tên người dùng thích hợp cho cơ sở dữ liệu tương ứng. Gần đây tôi đã gặp phải vấn đề này, tôi đã tạo một cơ sở dữ liệu mới và quên gán các lời thuyết phục cho tên người dùng hiện tại của mình.

1

Kiểm tra xem bạn đã thêm người dùng vào db chưa và cấp cho anh quyền thích hợp.

0

SOLVED Sử dụng `backticks for MYSQL reserved words ... tên bảng của bạn là từ dành riêng cho MYSQL ... Thay đổi tên bảng của bạn.

Các vấn đề liên quan