problemi di inserimento record in database remoto e locale

Caro Gianni,

 vista la tua disponibilità ti chiedo di nuovo  un aiuto (sono alle prime armi con PHP e MYSQL sia in locale che in remoto). Ho lanciato questo banale script per inserire un record nella tabella amici del  database: la connessione c'è  ma non riesco a inserire il record con l'istruzione insert

ecco lo script

<?php

// Apro la connessione (ometto le informazioni su host user e password)

$host = '62..........';

$user = '---------';

$password = '---------';

mysql_connect($host,$user,$password) or die ("CONNESSIONE FALLITA!");

print "CONNESSIONE OK";

$db=mysql_select_db("-------") or die ("SELEZIONE DATABASE FALLITA");

$query="INSERT INTO amici (nome,anno) VALUES ('Andrea',2004)";

$result = mysqli_query($query);

if(!$result)

// controllo l'esito della query

if (!$result) {

    echo 'Errore nella query';

}

else {

    echo 'Query effettuata con successo';

}

?>

 (le ultime righe da if in poi  le ho copiate da una tua vecchia risposta sul forum)

:-\ Mi ritorna:

CONNESSIONE OK

Fatal error: Call to undefined function: mysqli_query() in D:\...........\provaconn2.php on line 13

grazie mille  :bye:

inviato 11 anni fa
manaura
X 0 X

Con PHP 5 per interagire con un database MySQL ci sono 2 principali alternative: usare la vecchia estensione "mysql" oppure la nuova "mysqli". Queste estensioni non sono altro che delle librerie di funzioni che una volta caricate in PHP (configurando correttamente il file php.ini) vengono rese disponibili per l'uso negli script.

Le funzioni dell'estensione "mysqli" sono molto simili (ed in molti casi identiche) alle funzioni messe a disposizione dall'estensione "mysql", però permettono di sfruttare a pieno le nuove funzionalità delle più recenti versioni di MySQL.

Quando si scrive uno script PHP per interagire con MySQL quindi è necessario fare in partenza una scelta su quale estensione usare. Quindi bisogna assicurarsi che nel php.ini sia stato specificato di caricare la corretta estensione ed infine usare nello script le relative funzioni.

Per capire se una funzione appartiene all'estensione "mysql" o all'estensione "mysqli" basta vedere se il nome contiene una "i" dopo la parola "mysql".

Ad esempio con l'estensione "mysql" sono disponibili le funzioni: mysql_connect, mysql_select_db, mysql_query, ecc.

Con l'estensione "mysqli" le precedenti funzioni si chiamano: mysqli_connect, mysqli_select_db, mysqli_query, ecc.

Adesso analizziamo il tuo script. Subito si nota che hai mischiato funzioni dell'estensione "mysql" (mysql_connect, mysql_select_db) e funzioni di "mysqli" (mysqli_query) e questo ovviamente non è lecito.

L'errore che ricevi poi dice che PHP non conosce la funzione mysqli_query e questo può significare solo che non è stata caricata la relativa estensione "mysqli" (manca la direttiva nel php.ini)

Pertanto il modo più semplice per risolvere il problema è continuare ad usare le funzioni della vecchia libreria "mysql", sostituendo mysqli_query con mysql_query.

 :bye:

risposto 11 anni fa
Gianni Tomasicchio
modificato 11 anni fa
X 0 X

grazie per i suggerimenti

 :)

risposto 11 anni fa
manaura
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda