2012-07-16 4 views
0

J'ai essayé de me connecter avec ma base de données mais j'ai échoué complètement (je reçois toujours quelque chose comme: "Note de PHP: Variable indéfinie: conn" J'ai essayé chacun de les éléments suivants:Impossible de se connecter à la base de données avec mysqli, mysqli_connect ou PDO

$conn = new PDO("mysql:host=localhost;dbname=ar_data", 'login', 'pass'); 
$conn = mysqli('localhost', 'login', 'pass', 'dbname') or die("error" :.mysqli_connect_error()); 
$conn = mysqli_connect('localhost', 'login', 'pass', 'ar_data') or die("error" :.mysqli_connect_error()); 

Après avoir essayé dernier je suis arrivé ce sur une var_dump($conn):

object(mysqli)#17 (18) { ["affected_rows"]=> int(0) ["client_info"]=> string(78) 
"mysqlnd 5.0.8-dev - 20102224 - $Id: SOME_VALUE_I_AM_CENSORING $" 
["client_version"]=> int(50008) ["connect_errno"]=> int(0) ["connect_error"]=> NULL 
["errno"]=> int(0) ["error"]=> string(0) "" ["field_count"]=> int(0) ["host_info"]=> 
string(20) "localhost via TCP/IP" ["info"]=> NULL ["insert_id"]=> int(0) ["server_info"]=> 
string(6) "5.5.25" ["server_version"]=> int(50525) ["stat"]=> string(140) "Uptime: 477847 
Threads: 6 Questions: 202259 Slow queries: 1 Opens: 1454 Flush tables: 1 Open tables: 10 
Queries per second avg: 0.423" ["sqlstate"]=> string(5) "00000" 
["protocol_version"]=> int(10) 
["thread_id"]=> int(1506) ["warning_count"]=> int(0) } 

J'ai aussi essayé d'utiliser les utilisateurs qui ne disposent pas de privilèges à la base de données ar_data et il me donnera une erreur pour cela comme prévu.Si je le fais var_dump($conn) juste avant un mysqli_prepare($conn, $sql) alors il imprimera NULL. Comment puis-je me connecter à la base de données?

Notes: J'ai changé le nom de conn à d'autres vars en cas de changement, mais toujours le même comportement. J'ai aussi Drupal 7 et Wordpress installés (j'imagine qu'ils utilisent simplement msql de base pour se connecter)

MISE À JOUR:

fichier complet: https://dl.dropbox.com/u/6688861/phpconn.txt

+1

Il est possible que vous ayez des problèmes de portée. –

Répondre

1

Le dernier var_dump indique que la connexion fonctionne bien. Votre problème est que vous faites référence à $conn dans la fonction ValidateForm() sans déclarer global $conn dans cette fonction.

+0

J'ai pour un paramètre de liaison: 'mysqli_stmt_bind_param ($ stmt, 'ssssssissssssssss', $ nom, $ fname, $ email, $ addr, $ ville, $ état, $ zip, $ téléphone, $ affiliation, $ prof_role, $ _SERVER ['REMOTE_ADDR'], enum ($ abc), enum ($ as), enum ($ carr), enum ($ ema), enum ($ tuac), enum ($ last)); 'est ce que la fonction enum() pourrait être un problème? – Ray

+1

'enum()' n'est pas une fonction PHP standard, mais ce n'est pas votre problème ... votre problème est en effet un 'global' manquant. – duskwuff

+0

Non, ce n'est pas le cas. la connexion est déclarée en haut de la page, hors de toute fonction. – Ray

0

Votre connexion est correcte dans ce dernier résultat. Vous ne récupérerez pas les informations du serveur MySQL si votre connexion n'a pas fonctionné. Où obtenez-vous l'erreur de variable indéfinie par rapport à cet appel? Peut-être utile d'avoir plus de contexte.

+0

Est sur $ stmt = mysqli_prepare ($ conn, $ sql); – Ray

Questions connexes