2012-09-22 3 views
0

아래 코드는 내가 해결할 수없는 문제를 다시 만듭니다. 코드에서 문제가있는 곳을 파악할 수없는 것 같습니다. MySQL 설정? 또는 다른 곳? 올바른 방향으로 향한 어떤 포인터라도 감사 할 것입니다.데이터베이스에 성공적으로 연결 한 후에도 PHP가 테이블을 찾을 수 없습니다.

<html> 
<head></head> 
<body> 
<?php 
$db_name = "UserDB"; 
$open = mysql_connect("localhost", "root", ""); 
if($open) 
    echo "1. Successfully connected to MySQL"; 
echo "</br>"; 
$db = mysql_select_db($db_name, $open); 
if($db) 
    echo "2. Successfully selected {$db_name} database"; 
echo "</br>"; 
$sql = "SHOW TABLES FROM `{$db_name}`"; 
$result = mysql_query($sql); 
$print = mysql_num_rows($result); 
if($result) 
    echo "3. {$print} tables found in {$db_name}"; 
?> 
</body> 
</html> 

Here's my output: 
1. Successfully connected to MySQL 
2. Successfully selected UserDB database 
3. 0 tables found in UserDB 

문제는 출력의 3 행에 있습니다. "0"테이블이 잘못되었습니다. 선택한 DB에 "3"InnoDB 테이블을 만들었습니다. phpMyAdmin에서 동일한 SHOW TABLES 쿼리를 복사/붙여 넣기하고 실행하면 완벽하게 실행됩니다.

어떤 아이디어가 여기에 있습니까 ??

+0

로컬 호스트에서 코드를 실행했는데 문제가없는 것 같습니다. 결과는 다음과 같습니다. 1. 성공적으로 MySQL에 연결되었습니다. 2. db_name 데이터베이스를 성공적으로 선택했습니다. 3. db_name에 8 개의 테이블이 있습니다. 문제는 코드가 아닌 다른 것이어야합니다. –

+0

$ result의 값은 무엇입니까? – AlexP

+0

"UserDB에있는 3. 0 개의 테이블"을 출력하기 때문에 if 문에 들어가기 때문에 false가 될 수 없습니다. –

답변

0

랩퍼 기능 mysql_list_tables을 사용해보십시오. mysql_list_tables를 사용할 수는 있지만, 일단 이상한 권한 정의로 인해 SHOW TABLES를 사용할 수 없다는 것을 알았습니다.

관련 문제