2012-12-21 2 views
0

저는 초보 프로그래머입니다. PHP를 배우려는 의도로 XAMPP를 설치했습니다. SQL에 대한 실무 지식이 있습니다.XAMPP에서 PHP 사용 : db를 만들 수는 있지만 테이블을 만들 수는 없습니다

나는 PHP 자습서 w3schools을 따라 왔습니다. 현재 가지고있는 문제는 다음과 같습니다. here 스크립트를 사용하여 데이터베이스와 테이블을 만듭니다. 나는 "root"로 사용자를 대체하고 비밀번호를 삭제했다는 것을 제외하고는 거의 그대로 사용합니다.

브라우저를 통해 스크립트를 실행하면 데이터베이스 my_db가 XAMPP의 mysql 데이터 파일에 나타납니다.

그러나, 테이블의 흔적이 없다, 나는 테이블을 선택하려고 할 때, 나는

테이블 'my_db.persons'

은 무엇을하려고 존재하지 않는 수 에? 그대로 사용하는 코드에 문제가 있습니까? 아니면 권한이있는 것입니까?

그것은 데이터베이스가 만들어집니다 이상해하지만 테이블이 ... happenned 것을

+3

w3schools를 사용하지 마십시오. http://w3fools.com/ - 장난 꾸러기 개발자. –

+0

XAMPP에는 PHPmyAdmin이라는 것이 있습니다. 테이블을 실제로 볼 수있는 사용자 인터페이스입니다. http : // localhost/phpmyadmin이 데이터베이스에서 테이블을 볼 수 있습니까? – Chris

+0

은 다른 PHP 코드보다 먼저 'error_reporting (E_ALL); ini_set ('display_errors ', 1);을 넣습니다. – dualed

답변

1

당신이 "테이블 만들기"실패한 것입니다.

(코드에서) 모든 mySQL 쿼리를 수행 한 후에 오류를 확인하는 습관을 가지십시오. 오류를 무시할 수있는 경우가 있지만 드문 경우가 있습니다. 그래서의 프로그램 alonghte 라인 : 당신이 따라 튜토리얼 하나의 문제는 mysql_로() 곧 감가 상각하려고하는 기능을 사용한다는 것입니다 나는이 솔루션을 포기하지 않을거야

Create query: $sql = 
Set parameters: $aParams = (or bind paramters) 
Execute query 
If errors 
    If debug: Show error and query 
    If live: Log error and query 

는 코드입니다. PDO (PHP Database Objects) 또는 mysqli() 함수를 사용해야합니다. 그렇지 않으면 코드가 몇 번의 릴리스 시간에 작동하지 않습니다.

PDO를 사용하면 예외를 사용하도록 오류 처리를 설정할 수 있으며 모든 호출을 try {} catch {}에 랩핑하면 catch 및보고 오류를 매우 쉽게 습득 할 수 있습니다.

$sql = 'CREATE TABLE....'; 
    $aParams = array(
     ':param_name' => $param_value, 
     ':param_name2' => $param_value2 
      ); 

    try { 
     $stmnt = $db->prepare($sql); 
     $stmnt->execute($aParams); 
     $stmnt = null; 
    } catch (Exception $e) { 
     // Error log here; $e contins line of error and the actual error, you have $sql and $aParams 
     LogDBError($e, $sql, $aParams); 
    } 
+0

조언을 주셔서 대단히 감사드립니다. 나는 그것을 고용하는 여가 시간을 기다릴 수 없다 :) – rschwieb

관련 문제