2013-02-08 4 views
0

에 대해 한 번 "연결 DB에"스크립트를 만들 : -PHP : 아래 그림과 같이 내가 PHP 스크립트를 작업 한 모든

main.php 파일 :

<?php 
include'../scripts/pdoMysqlPhpScript1.php'; 
?> 

pdoMysqlPhpScript1.php 파일 :

<?php 
    include 'login.php'; 
    $dbh-> query('use testdata1970_10'); 
    foreach($dbh->query('call getallusers();') as $row) 
?> 

login.php 파일 :

<?php// PDO is used 
$dsn = 'mysql:host=localhost; Port=3306'; 
$user = 'root'; 
$pswd = ''; 
$dbh = new PDO($dsn, $user, $pswd, 
    array(PDO::ATTR_PERSISTENT, TRUE)); 
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 
?> 

작동 중입니다.

그러나 main.php에 login.php를 포함하고 pdoMysqlPhpScript1.php에서 login.php를 제거하면 그것은 작동하지 않았다.

이유는 무엇이며 login.php를 한 번 사용하여 스크립트의 끝에서 닫을 때까지 많은 다른 PHP 파일이나 저장 프로 시저의 모든 서비스에 다시 사용할 필요가 없도록하려면 어떻게해야합니까? 예를 들어

: -

main.php 파일 :

<?php 

    include 'login.php'; //scripts inside:- $dbh = new PDO($dsn, $user, $pswd,....); 
    include 'fileA.php'; //scripts inside:- $dbh = query('use storedprocedure'); 
    include 'fileB.php'; //scripts inside:- $dbh -> query ('select x from xtable'); 
    include 'fileC.php'; //scripts inside:- $stmt = $dbh->prepare('select name, value from test where name=:what'); 
    include 'fileD.php'; //scripts inside:- $dbh = query('select testtable()'); 
    include 'fileE.php'; //scripts inside:- $stmt = $dbh->prepare('select name, value from test'); 
?> 

감사를 알려 주시기 바랍니다
클레멘트 내가 그 login.php을 위해 어떻게

+0

"작동하지 않았 음"이라고 표시되지만 작동하지 않는 이유는 무엇입니까? 어떤 종류의 오류 메시지가 있었습니까? –

답변

0

은 그래서 한 번 사용된다 스크립트가 끝날 때까지 여러 다른 PHP 파일이나 저장 프로 시저의 모든 서비스에 대해 다시 사용할 필요가 없습니다.

기본 스크립트 바로 맨 위에 포함 시키십시오.
글로벌 범위 내에서 $dbh 변수의 주소 만 지정하십시오. 그렇지 않은 경우 (즉, 함수 내에서) 사용자가 액세스 할 수 있도록해야합니다. global $dbh;

+0

오, 알 겠어 .. 고마워. – user1739825

관련 문제