2012-12-20 21 views
5

Eventuali duplicati:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in selectmysqli_select_db() si aspetta parametro 1 per essere mysqli, stringa di dato

Sono nuovo di Mysqli_ * e sto ottenendo questi errori:

Avviso: mysqli_select_db() si aspetta che il parametro 1 sia mysqli, stringa indicato in D: \ Hosting \ 9864230 \ html \ include s \ connection.php sulla linea 11

Attenzione: mysqli_error() si aspetta esattamente 1 parametro, 0 dato in D: \ Hosting \ 9.864.230 \ html \ include \ connection.php on line 13

Database selezione non riuscita:

<?php 
require("constants.php"); 

// 1. Create a database connection 
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS); 
if (!$connection) { 
    die("Database connection failed: " . mysqli_error()); 
} 

// 2. Select a database to use 
$db_select = mysqli_select_db(DB_NAME,$connection); 
if (!$db_select) { 
    die("Database selection failed: " . mysqli_error()); 
} 
?> 
+0

Avete l'ordine dei parametri sbagliato, impostare '$ connection' prima' DB_NAME' a vostra chiamata a 'mysqli_select_db()'. Non credo che questa domanda mostri alcun tentativo di ricerca, provate google o guardate php.net la prossima volta. – Cyclonecode

+0

@Marc B - stesso numero di base –

+1

@JohnConde, il problema è la mancanza di controllo degli errori. – Barmar

risposta

38

Gli argomenti sono nell'ordine sbagliato. Il collegamento viene prima secondo il docs

<?php 
require("constants.php"); 

// 1. Create a database connection 
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS); 
if (!$connection) { 
    die("Database connection failed: " . mysqli_error()); 
} 

// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME); 
if (!$db_select) { 
    die("Database selection failed: " . mysqli_error()); 
} 
?> 
1
// 2. Select a database to use 
$db_select = mysqli_select_db($connection, DB_NAME); 
if (!$db_select) { 
    die("Database selection failed: " . mysqli_error($connection)); 
} 

Hai l'ordine degli argomenti per mysqli_select_db() all'indietro. E mysqli_error() richiede di fornire un argomento di connessione. mysqli_XXX non è come mysql_XXX, questi argomenti non sono più opzionali.

Si noti inoltre che con mysqli è possibile specificare il DB in mysqli_connect():

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 
if (!$connection) { 
    die("Database connection failed: " . mysqli_connect_error(); 
} 

È must uso mysqli_connect_error(), non mysqli_error(), per ottenere l'errore da mysqli_connect(), in quanto quest'ultima richiede di fornire una valida connessione.

Problemi correlati