2013-04-14 12 views
7

Sono nuovo nell'utilizzo di PHP. Ho fatto qualcosa di semplice per connettersi a MySQL e selezionare un database:mysql_select_db() si aspetta che il parametro 2 sia risorsa, oggetto dato

$conn = mysqli_connect($db_host, $db_admin, $db_pass) or die(mysql_error()); 
// these variables are previously declared and initialized 

$selected_db = mysql_select_db($db_name, $conn) or die(mysql_error()); 

Quando ho provato, ho avuto un collegamento con successo consolidata e il seguente avviso:

mysql_select_db() expects parameter 2 to be resource, object given 

perché è successo? Come posso ripararlo?

risposta

19

Si utilizza sia mysqli e mysql semplicemente cambiare

mysql_select_db()

Con

mysqli_select_db 

Riferimentohttp://php.net/manual/en/mysqli.select-db.php

updated

Quando si utilizza mysql_select_db si suppone di utilizzare mysql api e quindi bisogna exatibilish connessione al database con mysql sintassi mysql_connectReference

MySQL è ora sconsigliato quindi è corretto o utilizzare mysqli o PDO

+0

sì, questo è stato l'errore :) grazie, puoi spiegare la differenza facilità :)? – Merna

+0

Sono due API diverse per la comunicazione con mysql. Le funzioni 'mysql_ *' sono deprecate, usano quelle 'mysqli_ *'. – Maerlyn

+0

done, thx ...... – Merna

0

In Oltre a utilizzare mysqli_ * costante (come menzionato in Fabio's answer), v'è un ulteriore problema (e un suggerimento):

  • Mentre l'ordine dei parametri in mysql_select_database è il nome del database, connessione, l'ordine dei parametri in mysqli_select_db è la connessione, nome del database.

    mysqli_select_db($conn, $db_name); 
    
  • Come suggerimento, mysqli_connect include un quarto parametro opzionale per la connessione a un particolare database. Ciò consentirebbe di evitare di chiamare il mysql_select_db del tutto.

    $conn = mysqli_connect($db_host, $db_admin, $db_pass, $db_name) 
        or die(mysqli_connect_error()); 
    
0

Devi cambiare mysql_select_db-mysqli_select_db come ha sottolineato Fabio, ma si otterrà un errore

mysqli_select_db() expects parameter 1 to be mysqli, string given 

Per qualcuno si verifica questo, invertire l'ordine dei parametri, come ad a questo caso dare

$selected_db = mysqli_select_db($conn, $db_name) 
Problemi correlati