2015-01-13 2 views
0

msqsql DB에서 데이터를 가져 오려고하는 페이지가 있습니다. 나는이 사이트에서 일부 사람들의 hep와 함께 작동하도록했습니다. 연결 변수가 tp가 설정 파일을 가리키는 곳을 바꿔 보려고했습니다. \, 나는 벗어나기 위해 오류도 내지 않습니다. require_once를 사용하여 동일한 구성 파일을 가리키는 또 다른 파일이 있는데 제대로 작동하지만 훨씬 더 복잡한 문자열입니다. 나는 내 페이지에서 이것을 설정하기 위해 require_once를 복사 할 수있을 것이라고 생각했지만 뭔가 빠졌습니다.require_once가 외부 파일에 작동하지 않습니다.

작동하는 내 페이지의 예는이 페이지에 직접 연결 문자열을 원하지 않습니다.

/* 연결 링크 아래 */

<?php 

$link = mysqli_connect("xxx.xxx.xxx.xxx", "un", "pw", "db"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); 
} 

$type = "mixers"; 

/* create a prepared statement */ 
if ($stmt = mysqli_prepare($link, "SELECT record_number, Base_Price FROM Products 
WHERE Unit_Product='u'")) { 

/* bind parameters for markers */ 
mysqli_stmt_bind_param($stmt, "s", $type); 

/* execute query */ 
mysqli_stmt_execute($stmt); 

/* bind result variables */ 
mysqli_stmt_bind_result($stmt, $product, $price); 

/* fetch value */ 
while(mysqli_stmt_fetch($stmt)) {  
$products[$product] = $price; } 



/* close statement */ 
mysqli_stmt_close($stmt); 
} 

/* close connection */ 
mysqli_close($link); 

?> 

<?php echo $products['1014']; ?> 

는 require_once를 작동 내 부품 페이지의 예입니다. 이 코드 전체를 복사하려고 시도했지만 나중에 페어링을 시도했지만 오류가 발생하지 않았습니다.

 <?php 

ini_set('display_errors',1); 
error_reporting(E_ALL); 
require_once('./inc/functions.php'); 

if(isset($_REQUEST['catid']) && is_numeric($_REQUEST['catid'])) { 
$cat_rn = $_REQUEST['catid']; 
display_category($cat_rn); 
} else { 
echo 'Invalid catid provided. <a href="/">Return Home</a> try something like 
<a href="'.$_SERVER['PHP_SELF'].'?catid=140">'.$_SERVER['PHP_SELF'].'?catid=140</a>'; 

} 

function display_category($cat_rn) { 
    require_once('./inc/db_config.php'); 
    require_once('./inc/functions.php'); 
    $con = mysql_connect($catdb['host'],$catdb['user'],$catdb['pass']); 
    if (!is_resource($con)) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
    mysql_select_db($catdb['dbname'], $con); 

어떤 도움을 주시면 감사하겠습니다. 나는 PHP를 알고 있지만 많이 배우고 있습니다. - 마이클

+0

질문을 편집하여 파일의 경로를 모두 추가해야합니다. –

답변

1

require_once()을 사용하고 있습니다. "once"의 범위는 UNIVERSAL입니다. 즉시 스크립트 어디에서나 파일을 당신 require_once(), 같은 파일의 다른 모든 require_once()로는 더-OPS가되지 및 파일을 건너 뛰려고하고있다 :

inc.php :

<?php 
echo 'hello'; 

이 script.php :

<?php 
require_once('inc.php'); // runs, prints "hello"; 

function foo() { 
    require_once('inc.php'); // require SKIPPED because file already included 
} 

foo(); 

위의 코드는 hello 만 인쇄합니다.

파일을 여러 번 포함하거나 필요로하는 경우 _once() 변형을 사용할 수 없습니다.

+0

'function.php'와 같은 파일의 경우 전역 범위의 파일과 다른 곳의 파일을 포함하여 함수가 이미 정의되었으므로 다시 정의 할 수 없기 때문에 치명적인 오류가 발생할 수 있습니다 일반적으로 require_once가 사용됩니다. –