2015-01-14 2 views
-1

초보자입니다. 나는 서버 웹 http://www.barman-team.ir/tt.php 에 간단한 PHP 페이지를 복사하고 난 SQL 데이터베이스를 가져오고 사용자 &을 만들고 로컬 호스트 (xamp)에경고 : mysql_connect() : 사용자에 대한 액세스가 거부되었습니다.

이 페이지 작업 (의 cPanel에서) 데이터베이스를 전달하지만, 서버에서 실행 해달라고

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>Untitled Document</title> 
</head> 

<body dir="rtl"> 

<?php 
     $link=mysql_connect("localhost","uname","pass"); 
     mysql_select_db("barmante_ebram",$link); 
     $q="SELECT * FROM site_sug";// 
     $r=mysql_query($q,$link); 
     $line= mysql_fetch_array($r); 
     //while($line== $result->fetch_assoc()){ 
     echo $line['site_suggestion_id'].$line['site_suggestion']."<br>";  
     //echo $row["site_suggestion_id"].$row["site_suggestion_name"].$row["site_suggestion_date"].$row["site_suggestion"]."<br>"; 
     //} 
    ?> 
</body> 
</html> 

오류 로그는 다음과 같습니다 첫 번째 오류는 사용자 이름 비밀번호 당신은 당신의 MySQL과 다른에 연결할 수 있다는 것을 의미 공급 된 것을 말하고

Warning: mysql_connect(): Access denied for user 'barmante_ebram_u'@'localhost' (using password: YES) in /home/barmante/public_html/tt.php on line 11 

Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in /home/barmante/public_html/tt.php on line 12 

Warning: mysql_query() expects parameter 2 to be resource, boolean given in /home/barmante/public_html/tt.php on line 14 

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /home/barmante/public_html/tt.php on line 15 
+0

오류 메시지에 대해 명확하지 않은 점은 무엇입니까? 실제 환경에는 테스트 환경과 다른 사용자 이름 및/또는 암호가 필요합니다. – Quentin

+1

** 경고 ** : [오래된 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [최신 대체] (http : // php. net/manual/ko/mysqlinfo.api.choosing.php). – Quentin

답변

0

오류는 두 번째 매개 변수에 리소스를 제공해야한다고 말합니다. 방금 매개 변수 순서를 변경했습니다. 아래 코드를 사용하십시오.

<?php 
     $link=mysql_connect("localhost","uname","pass"); 
     mysql_select_db($link,"barmante_ebram"); 
     $q="SELECT * FROM site_sug";// 
     $r=mysql_query($link); 
     $line= mysql_fetch_array($r); 
     //while($line== $result->fetch_assoc()){ 
     echo $line['site_suggestion_id'].$line['site_suggestion']."<br>";  
     //echo $row["site_suggestion_id"].$row["site_suggestion_name"].$row["site_suggestion_date"].$row["site_suggestion"]."<br>"; 
     //} 
    ?> 

참고 : * mysql_ * 함수를 사용하지 마십시오. 더 이상 사용되지 않습니다. mysqli 또는 PDO 준비 문을 사용하십시오. 희망합니다.

+0

여전히 더 이상 사용되지 않는'mysql_ *'함수를 사용하고 있습니까? – Raptor

0

이 종류의 디버깅을 추적 오류로 사용하십시오. 모든 경고가 USERNAME 또는 PASSWARD와 관련되어 있습니다. 올바른 사용자 이름과 암호를 사용하십시오. 문제를 해결할 것입니다. 당신은 문제 (초보자를위한 유용한)

0

당신이 사용자에 대한 올바른 사용 권한이 있다고 가정 원인을 알 수 있도록 각 쿼리

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Not connected : ' . mysql_error()); 
} 

// make foo the current db 
$db_selected = mysql_select_db('foo', $link); 
if (!$db_selected) { 
    die ('Can\'t use foo : ' . mysql_error()); 
} 

사용 mysql_error를은(), 다음 코드는 작동합니다. SQL Server에 연결하는 데 오류가 있거나 쿼리에 오류가 있는지 여부를 알려줍니다. ?>

<?php 
    $db_hostname = 'localhost'; 
    $db_database = 'barmante_ebram'; 
    $db_username = 'uname'; 
    $db_password = 'pass'; 
    $db_link= new MySQLi($db_hostname, $db_username, $db_password, $db_database); 
    if(! $db_link)  //if($db_link->connect_errno > 0) 
     die("Could not connect to database server\n" + $db_link->connect_error); 

    $query = "SELECT * FROM site_sug"; 
    $result = $db_link->query($query); 
    if(!result) 
     die("Error in query".$db_link->error); 
    $row = $result->fetch_assoc(); 
    echo $row['site_suggestion_id'].$line['site_suggestion']; 

가 : 항상 오류 검사를 수행하십시오 ((성공) 죽을 경우 ("")!). 코드에 아무 것도 없습니다. 따라야 할 좋은 습관.