2011-07-20 74 views
1

我最近建立了一個數據庫,並製作了一個代碼,允許人們註冊我正在構建的這個網站上的成員頁面。我使用的代碼已經工作過,很多次,但由於某些原因,當我嘗試提交數據作爲測試,我不斷收到此錯誤信息:MySQL數據庫連接問題

Failed to connect to server: Lost connection to MySQL server at 'reading initial communication packet', system error: 111 

我已經試過我什麼都知道,但沒有任何工程。我想我只是失去了一些東西,下面是發送數據的PHP代碼(但是,沒有在代碼似乎是錯誤的或不恰當):

<?php 

session_start(); 


require_once('config.php'); 


$errmsg_arr = array(); 


$errflag = false; 


$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
if(!$link) { 
    die('Failed to connect to server: ' . mysql_error()); 
} 


$db = mysql_select_db(DB_DATABASE); 
if(!$db) { 
    die("Unable to select database"); 
} 


function clean($str) { 
    $str = @trim($str); 
    if(get_magic_quotes_gpc()) { 
     $str = stripslashes($str); 
    } 
    return mysql_real_escape_string($str); 
} 


$fname = clean($_POST['fname']); 
$lname = clean($_POST['lname']); 
$login = clean($_POST['login']); 
$password = clean($_POST['password']); 
$cpassword = clean($_POST['cpassword']); 


if($fname == '') { 
    $errmsg_arr[] = 'First name missing'; 
    $errflag = true; 
} 
if($lname == '') { 
    $errmsg_arr[] = 'Email'; 
    $errflag = true; 
} 
if($login == '') { 
    $errmsg_arr[] = 'Login ID missing'; 
    $errflag = true; 
} 
if($password == '') { 
    $errmsg_arr[] = 'Password missing'; 
    $errflag = true; 
} 
if($cpassword == '') { 
    $errmsg_arr[] = 'Confirm password missing'; 
    $errflag = true; 
} 
if(strcmp($password, $cpassword) != 0) { 
    $errmsg_arr[] = 'Passwords do not match'; 
    $errflag = true; 
} 


if($login != '') { 
    $qry = "SELECT * FROM members WHERE login='$login'"; 
    $result = mysql_query($qry); 
    if($result) { 
     if(mysql_num_rows($result) > 0) { 
      $errmsg_arr[] = 'Login ID already in use'; 
      $errflag = true; 
     } 
     @mysql_free_result($result); 
    } 
    else { 
     die("Query failed"); 
    } 
} 


if($errflag) { 
    $_SESSION['ERRMSG_ARR'] = $errmsg_arr; 
    session_write_close(); 
    header("location: register-form.php"); 
    exit(); 
} 



{ 
    mkdir("somedirectory//$login") or die ("Could not make directory"); 
} 

{ 
    $ourFileName = "somedirectory/$login/verify.txt"; 
    $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
    fclose($ourFileHandle); 

    $ourFileName = "somedirectory/$login/name.txt"; 
    $ourFileHandle = fopen($ourFileName, 'w') or die("can't open file"); 
    fclose($ourFileHandle); 

} 

{ 

    $myFile = "somedirectory/$login.txt"; 
    $fh = fopen($myFile, 'w') or die("can't open file"); 
    $stringData = "$login\n"; 
    fwrite($fh, $stringData); 
    fclose($fh); 
} 
{ 

    $file = '000001.php'; 
    $newfile = "somedirectory/$login/$login.php"; 

    if (!copy($file, $newfile)) { 
     echo "failed to copy $file...\n";} 

} 




$qry = "INSERT INTO members(firstname, lastname, login, passwd) VALUES('$fname','$lname','$login','".md5($_POST['password'])."')"; 
$result = @mysql_query($qry); 


if($result) { 
    header("location: register-success.php"); 
    exit(); 
}else { 
    die("Query failed"); 
} 
    ?> 

任何想法是什麼原因造成了MySQL連接錯誤?

+1

只是好奇,爲什麼你使用'{}'來分隔「塊」? – zerkms

+1

我想是視覺組織。我對PHP很陌生,他們並沒有真正影響代碼,所以我只是用它們。 –

回答

1

系統錯誤111是ECONNREFUSED,所以在指定主機上沒有任何監聽;主機不正確或MySQL沒有運行。