2012-08-24 6 views
-1

나는 PHP mysql 연결 스크립트를 만들고있다. 나는 그것이 무엇인지 추적 할 수 있도록 함수를 사용하기를 원했기 때문에 MySQL 연결에는 하나의 기능이 있습니다. 실행할 때 "No database selected"가 표시되고 수동으로 지정하면 "@ localhost에 대한 액세스가 거부되었습니다"라는 메시지가 나타납니다.mysql connect = 데이터베이스가 선택되지 않았습니까? then access denied

코드

<?php 
/* Mysql Data */ 
$MySqlUser = "root"; 
$MySqlPass = "**********"; 
$MySqlHost = "localhost"; 
$MySqlDataBase = "serveradmin"; 
/* End Mysql Data */ 
function MySqlConnect() { 
    $Connect = mysql_connect($MySqlHost, $MySqlUser, $MySqlPass); 
    $Database = mysql_select_db($MySqlDataBase); 
    if (!$Connect | !$Database) { 
     die("Cannot connect ".mysql_error()); 
    } 
} 
MySqlConnect() 
?> 

그래서 문제는, 어떤이의 원인은? 스크립트를 멋지고 깨끗하게 만들고 function()이 원인인지 확실하지 않기를 바란다.

+4

하십시오 mysqli이 새로운 코드'mysql_로 *'기능을 사용하지 않는 들여다하시기 바랍니다. 더 이상 유지 관리되지 않으며 커뮤니티에서 [지원 중단 프로세스] (http://goo.gl/KJveJ)를 시작했습니다. [** 빨간색 상자 **] (http://goo.gl/GPmFd)를 참조하십시오. 대신 [prepared statements] (http://goo.gl/vn8zQ)에 대해 알아야하고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용해야합니다. mysqli). 결정할 수없는 경우 [이 기사] (http://goo.gl/3gqF9)를 선택하면 도움이됩니다. 당신이 배우기를 원하면 [여기 PDO 튜토리얼] (http://goo.gl/vFWnC)을 참조하십시오. – PeeHaa

+0

데이터베이스 핸들이 반환되지 않기 때문에이 함수로 무엇을 달성하려고하는지 명확하지 않습니다. – PeeHaa

+0

u 함수에 인수를 전달해야합니다. 그렇지 않습니다. 모든 args를 가져 오지 마십시오. –

답변

1

이 문제를 해결할 것이다, 그러나 PDO 또는

<?php 
/* Mysql Data */ 
$MySqlUser = "root"; 
$MySqlPass = "**********"; 
$MySqlHost = "localhost"; 
$MySqlDataBase = "serveradmin"; 
/* End Mysql Data */ 
function MySqlConnect($MySqlUser, $MySqlPass, $MySqlHost, $MySqlDataBase) { 
    $Connect = mysql_connect($MySqlHost, $MySqlUser, $MySqlPass); 
    $Database = mysql_select_db($MySqlDataBase); 
    if (!$Connect | !$Database) { 
     die("Cannot connect ".mysql_error()); 
    } 
    return $Database; 
} 
$Database = MySqlConnect($MySqlUser, $MySqlPass, $MySqlHost, $MySqlDataBase); 
?> 
+0

좋습니다. PDO 또는 mysqli – Teknikk

관련 문제