2009-02-27 10 views
-1

Je me sens comme un total n00b pour ne pas comprendre ce que je fais mal, mais voilà. Je suis en train d'écrire un formulaire web simple qui stocke des informations dans une base de données MySQL. Je reçois cette erreur:PHP mysqli paramètre inattendu Question

mysqli_stmt_init() expects parameter 1 to be mysqli, null given in /myfile.php 

Voici mon code:

$server = 'localhost'; 
$username = 'myusername'; 
$password = 'mypassword'; 
$db = 'mydb'; 
$link = mysqli_connect($server, $username, $password, $db); 
. 
. 
. 
$stmt = mysqli_stmt_init($link); /*This line throws the error*/ 

Toutes les idées? Merci d'avance. Etes-vous sûr à 100% que vous vous connectez à la base de données avec succès?

+0

Mon problème était ma portée variable (après avoir divisé mes fonctions.) Ne fonctionne pas de la même manière que Java :) Merci Paolo pour cette error_reporting (E_ALL); pointe! – mclaughlinj

Répondre

3

Ajouter au sommet de votre script:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

Ajoutez également juste en dessous de votre ligne de connexion:

if (mysqli_connect_errno()) { 
    printf("Connect failed: %s", mysqli_connect_error()); 
    exit; 
} 
+0

Oui, j'ai effectué une vérification simple avant la déclaration $ stmt if ($ link) {$ stmt = mysqli_stmt_init ($ link); } Cela devrait fonctionner, non? – mclaughlinj

+0

Peu importe, vous avez raison ... La portée variable m'a mordu. Merci! – mclaughlinj

0

Si ceci est votre serveur dev vous devriez probablement définir les lignes suivantes dans votre php Fichier .ini plutôt que dans chaque script.

error_reporting = E_ALL display_errors = sur

si cela ne vous permet pas de résoudre problème que vous devez imprimer notre lien $ pour voir ce qu'il est.