2010-01-08 8 views
2

J'utilise l'hébergement Linux partagé et du PHP que j'ai écrit ne fonctionnera pas avec ma base de données sur le serveur.MySQL et PHP fonctionnent localement, pas sur GoDaddy

EDIT:

je résolu le problème. J'ai accidentellement supprimé la variable de connexion "database" d'un fichier de configuration. Sensationnel. C'était idiot de ma part.

EDIT:

En fonctionne pas, je veux dire que je ne peux pas lire la DB. J'ai assez déconné pour savoir que la base de données fonctionne et que lorsque je modifie la variable de mot de passe, j'obtiens 'Accès refusé'. En outre, sur localhost, le mot de passe est différent et cela fonctionne.

EDIT 2: Je travaille maintenant avec un exemple de script. Il apparaît maintenant une page blanche. Au moins il n'y a pas d'erreurs ... J'ai changé le mot de passe pour qu'il soit alphanumérique. Je n'utilise pas 'localhost'.

EDIT 3: Avec le mot de passe correct et les informations sur le serveur, j'obtiens l'erreur suivante en utilisant mysql_error(). Je n'utilise pas un http: // principal dans l'URL db.

Impossible de se connecter au serveur MySQL local par socket '/var/lib/mysql/mysql.sock' (2)

Edit 4:

Voici ma connexion code.Please noter que nl() et report() sont des fonctions prédéfinies qui font écho aux nouvelles lignes et aux messages de diagnostic respectivement. Les variables de connexion sont dans un fichier externe, inclus ci-dessus. J'ai vérifié - les inclus fonctionnent très bien.

////////////////////////////// 
// Connect to the database ///////////////////////////////////////// 
////////////////////////////// 

//report - Attemting to establish connection ... 
report(4); 

//// 
//Step 1) Set connection in variable 
//// 

$conn = mysql_connect($server, $user, $pass); 

//// 
// Step 2) Verify the connection 
//// 

if(!$conn){ 
    //report - failed, see next line... 
    report(5); 
    //report - FATAL ERROR: Check database name, username and password. 
    report(9);  
}else{ 
    //report - done! 
    report(7); 
} 

//report - Selecting database ... 
report(6); 

//// 
// Step 3) Select the database 
//// 

$db_select = mysql_select_db($database); 

//// 
// Step 4) Verify successful selection 
//// 

if(!$db_select){ 
    //report - failed, see next line... 
    report(5); 
    //report - FATAL ERROR: Could not select database. 
    report(8); 
}else{ 
    //report - done! 
    report(7); 
} 

//report - Running query ... 
report(10); 

//// 
// Step 5) Create the original the query 
//// 

$selector = " * "; 
$target = "`properties`"; 
$condition = "1"; 

$sql = "SELECT " . $selector . " FROM " . $target . " WHERE " . $condition; 

//// 
// Step 6) Check for a $_GET[] parameter 
//// 

if($_GET['listing'] && !is_null($_GET['listing'])){     //if a listing number was supplied 
    $listingNum = htmlentities($_GET['listing']);     //safety first - clean it from code injections      
    $pattern = '/\b[0-9]{1,6}\b/';         //define a range of valid, sercheable listings 
    if(preg_match($pattern,$listingNum) == 1){      //if the listing id is a valid one 
     $sql .= " AND `listing_id` =" .$listingNum . "";   //search for it in the database 
    }elseif($exp == 0){            //if the listing number is out of range   
     if($listingNum != "all"){         //check if the "all" keyword was ommitted - if it was not supplied. 
      //report - failure ... see below 
      report(5); 
      //report - Invalid listing ID 
      report(12); 
      // 
      // Invalid Listing ID... 
      // 
     }  
    } 
}else if(!$_GET['listing']){ 
    //report - failure ... see below 
    report(5); 
    //report - Invalid listing ID 
    report(12); 
    // 
    //No listing ID 
    // 
} 


if(!$sql){ 
    //report - failed, see next line... 
    report(5); 
    //report - FATAL ERROR: Could not run query. 
    report(11); 
    // 
    // For some reason the query doesn't exist here. I really do wonder why. 
    // 
}else{ 
    //report - done! 
    report(7); 
    nl(); 
} 

$result = mysql_query($sql); //perform the actual query 

if(!$result){ 
    echo("There's been some sort of error with the search lookup. Here are the details: \n" . mysql_error()); 
} 

mysql_close($conn);   //close the connection to the SQL server 
+0

Avez-vous essayé echo'n 'phpinfo();' pour vous assurer que son travail pour commencer ? Je me suis souvenu que si vous choisissez l'hébergement Linux, vous obtiendrez PHP donc il devrait être là. –

+0

Tout le reste fonctionne sur le serveur php. PHP fonctionne. – Moshe

+1

Que signifie "ça ne marche pas"? Avez-vous des erreurs (si nécessaire, essayez d'activer error_reporting)? –

Répondre

3

Avez-vous utilisé "localhost" dans la connexion mysql?

La plupart des serveurs d'hébergement mysql sur differernt machine et normalement localhost ne fonctionne pas, besoin de mettre l'adresse exacte fournie par votre serveur.

Et le caractère "#" dans le mot de passe ne devrait pas être un problème, mais votre mot de passe devrait être entre guillemets comme "123 # 123", je ne suis pas sûr que 123 # 123 fonctionnera ou non.

+0

+1 pour le bit sur le pwd. – Moshe

0

Avez-vous déjà accédé à la base de données auparavant? Avez-vous installé phpMyAdmin? et le hachage ne devrait pas être le problème. Si cela vous permet de le définir comme mot de passe, vous pouvez vous connecter à coup sûr. Souhaitez-vous poster le code que vous utilisez pour que nous puissions vérifier si?

+0

J'ai déjà accédé à d'autres DB sur GoDaddy, pas à celui-ci. Je pense que le fait qu'il y ait un # dans le milieu dérange les choses parce que c'est le caractère de commentaire de PHP. (En dehors de/**/et //) Peut-être que GoDaddy/PHPMyAdmin a un moyen de l'analyser. – Moshe

+1

Le hachage est un commentaire tant qu'il est en dehors d'une chaîne. Cela n'a rien à voir avec ça. – metrobalderas

0

J'ai utilisé GoDaddy une ou deux fois (service terrible btw), et aussi loin que je me souvienne, l'hôte mysql, qui est 98% localhost, devrait être réglé sur un autre hôte, mais je ne suis pas sûr. Peut-être que vous devriez commencer à vérifier là.

2

Pour GoDaddy, vous devez et non utiliser localhost comme serveur de base de données. Il y a un exemple de code PHP sous Bases de données -> MySQL dans le gestionnaire d'hébergement qui peut vous aider.

+0

Je n'utilise ** pas ** localhost comme serveur. – Moshe

0

Note à moi:

quelque chose la prochaine fois, comme cela se produit, vérifiez que la base de données que vous sélectionnez dans MySQL

Questions connexes