2015-01-12 6 views
2

로컬 데이터베이스에 연결된 기본 등록 페이지를 얻으려고합니다.PHP 변수가 정의되지 않았습니다.

Notice: Undefined variable: dbhost in C:\wamp\www\functions.php on line 19 

Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19 

Notice: Undefined variable: con in C:\wamp\www\functions.php on line 19 

Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\wamp\www\functions.php on line 19 

이것은 내가 얻은 오류입니다. function.php 스크립트에서 함수를 참조 할 때 발생합니다.

<?php //functions.php 
$dbhost = 'localhost'; //change to webserver ip 
$dbname = 'maindb'; 
$dbuser = 'administrator'; 
$dbpass = 'password'; 
$appname = "webapp"; 

$con = mysqli_connect($dbhost,$dbuser,$dbpass) or die (mysqli_error($con)); 
mysqli_select_db($con, $dbname) or die (mysqli_error($con)); 

function createTable($name, $query) 
{ 
    queryMysql("CREATE TABLE IF NOT EXISTS $name($query)"); 
    echo "Table '$name' created or already exists<br>"; 
} 

function queryMysql($query) 
{ 
    $result = mysqli_query($dbhost, $query) or die(mysqli_error($con)); 
    return $result; 
} 

나는이 문제가 무엇인지 확실하지 않습니다. 몇 년 전 PHP를 배웠고 2011 년 이후로는 조금 변경된 것으로 보입니다. 어떤 도움을 주시면 감사하겠습니다.

+0

'$ dbhost' 함수에서 잘못된 변수 사용하기 –

답변

4

이러한 변수는 전역 범위에서 선언되었으므로 함수에서 사용할 수 없습니다.

function queryMysql($query, $con, $dbhost) 

(그래서 여기에 표시되지 않습니다 당신은 또한 global 키워드를 사용할 수 있지만 나쁜 PRACTIC입니다) : 당신은 그 함수의 매개 변수로 전달해야하므로이를 확인하십시오.

또한, mysqli_query()의 첫 번째 매개 변수는 $con에 저장되는 MySQL의 연결 자원,하지 $dbhost

function queryMysql($query, $con) 
{ 
    $result = mysqli_query($con, $query) or die(mysqli_error($con)); 
    return $result; 
} 
+0

고마워요, 아름답게 일하신 분 :) –

1

mysqli_query 연결하지 호스트를 요구해야하며, 당신은 그것을 통과해야 :

function queryMysql($con, $query) 
{ 
    $result = mysqli_query($con, $query) or die(mysqli_error($con)); 
    return $result; 
} 

그럼 당신은 그것을 호출 할 때 :

$result = queryMysql($con, $query) 
+0

정말 고마워요! –

관련 문제