Problema con MySQL e PHP, dopo aver fatto una SELECT non ottengo alcun risultato

hud468

Nuovo Utente
5 Ago 2013
4
0
0
Salve a tutti, sono nuovo del forum e di PHP, da due giorni sto impazzendo dietro ad un problema, piuttosto comune (guardando nei vari forum), a cui non riesco trovare soluzione. Il codice è semplicissimo, mi collego al database e voglio fare una SELECT della tabella "users". Che puntualmente fallisce.
Ho provato ad eseguire una CREATE TABLE ed una INSERT e funzionano.
La SELECT invece non funziona e di conseguenza mi ritorna un valore NULL e la funzione mysql_count_rows mi ritorna un errore. Ora, non so dove sbattere la testa, la query è semplicissima e la tabella contiene già tre record.
Non credo sia un problema di permessi, poiché entro come root. Qualche consiglio?
Grazie in anticipo.

PHP:
<?php


try {
    $db = new PDO ("mysql:host=localhost;dbname=test_db", "root", "");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec('SET NAMES "utf8"');
    echo "Connected to the server <br />";
}

catch (PDOException $e){
    $output = $e.getMessage();
    echo $output;
    exit();
}



$sql = "SELECT * FROM users";
var_dump($sql);
echo '<br />';

$result = $db->query($sql);
var_dump($result);


echo '<br />';

if (is_resource($result))
{
   echo "it is a resource indeed...";
}


$count=mysql_num_rows($result);
var_dump($count);

echo '<br />'.$count;
echo mysql_error();
?>


Quello che ottengo è:

Connected to the server
string(19) "SELECT * FROM users"
object(PDOStatement)#2 (1) { ["queryString"]=> string(19) "SELECT * FROM users" }

Warning: mysql_num_rows() expects parameter 1 to be resource, object given in C:\xampp\htdocs\backend\index.php on line 36
NULL
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
secondo me stai facendo un minestrone mescolando le istruzioni della classe PDO con le vecchie istruzione mysql.
o usi un metodo o l'altro

prova a correggere così
PHP:
<?php
try {
    $db = new PDO ("mysql:host=localhost;dbname=prove", "root", "password");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec('SET NAMES "utf8"');
    echo "Connected to the server <br />";
}catch (PDOException $e){
    $output = $e.getMessage();
    echo $output;
    exit();
}
$sql = "SELECT * FROM users";
var_dump($sql);
echo '<br />';
$result = $db->query($sql);
var_dump($result);
echo '<br />';
if (is_resource($result)){
   echo "it is a resource indeed...";
   $count=$result->rowCount();
	var_dump($count);
	echo '<br />'.$count;
}else{
	echo "is not a resource...";
}
?>
 
Ultima modifica:

hud468

Nuovo Utente
5 Ago 2013
4
0
0
ciao
secondo me stai facendo un minestrone mescolando le istruzioni della classe PDO con le vecchie istruzione mysql.
o usi un metodo o l'altro

prova a correggere così
PHP:
<?php
try {
    $db = new PDO ("mysql:host=localhost;dbname=prove", "root", "password");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->exec('SET NAMES "utf8"');
    echo "Connected to the server <br />";
}catch (PDOException $e){
    $output = $e.getMessage();
    echo $output;
    exit();
}
$sql = "SELECT * FROM users";
var_dump($sql);
echo '<br />';
$result = $db->query($sql);
var_dump($result);
echo '<br />';
if (is_resource($result)){
   echo "it is a resource indeed...";
   $count=$result->rowCount();
	var_dump($count);
	echo '<br />'.$count;
}else{
	echo "is not a resource...";
}
?>

Grazie della risposta, ho provato col codice che hai postato, purtroppo continua a non funzionare. Quello che ottengo è questo:

Connected to the server
string(19) "SELECT * FROM users"
object(PDOStatement)#2 (1) { ["queryString"]=> string(19) "SELECT * FROM users" }
is not a resource...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
sei sicuro che la tabella si chiami users?
l'ho provato e funzia (la mia tabella di pova si chiama utenti) è mi da 32 cioè i record che ci sono
 

hud468

Nuovo Utente
5 Ago 2013
4
0
0
ciao
sei sicuro che la tabella si chiami users?
l'ho provato e funzia (la mia tabella di pova si chiama utenti) è mi da 32 cioè i record che ci sono

La tabella si chiama users. Come ho scritto sopra ho provato altre query come INSERT (proprio sulla tabella users) e CREATE TABLE e funzionano.
La tabella consiste di 3 semplici campi (id, username, passwrd).
Ho provato a fare girare il codice anche sul portatile in locale e il risultato era sempre lo stesso.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
hai ragione ho fatto un errore nel copy/paste
sostitisci
is_resource($result)
con
is_object($result)
con le pdo $result è un oggetto non una risorsa, risorsa è con mysql
dimenticavo
puoi fare anche solo
if ($result){
perchè query($sql) ritorna FALSE in caso di errore
 
Ultima modifica:

hud468

Nuovo Utente
5 Ago 2013
4
0
0
ciao
hai ragione ho fatto un errore nel copy/paste
sostitisci
is_resource($result)
con
is_object($result)
con le pdo $result è un oggetto non una risorsa, risorsa è con mysql
dimenticavo
puoi fare anche solo
if ($result){
perchè query($sql) ritorna FALSE in caso di errore

Ciao, adesso funziona. Sia con il nuovo codice che quello che non funzionava ieri. Non ho fatto alcun cambiamento per il resto. Sono un tantino perplesso :), essendo un principiante, mi chiedo se siano già capitati problemi del genere.
Grazie mille comunque per il supporto!!

Gregorio
 
Discussioni simili
Autore Titolo Forum Risposte Data
S problema con recupero dati tabella mysql PHP 2
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
V [MySQL] problema query con date su server MySQL 5
G inserimento csv in tabella mysql; problema con struttura PHP 11
S Problema ricevimento dati da con MySQL PHP 6
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F Problema con mysql workbench MySQL 0
M [MySql - VB6 sp6] Problema connessione db con alcuni pc (errore Lost connection to MySQL server...). MySQL 1
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
F [MySQL] Problema con LEFT JOIN MySQL 6
A [MySQL] problema con la command line client. MySQL 0
neo996sps PHP/MySQL - Problema con generazione array PHP 14
S Problema con pagination e mysql PHP 0
I Problema con DELETE - MYSQL PHP 6
M problema con form scrittura su mysql PHP 3
G Problema con query mysql MySQL 1
A problema con database (mysql - php) PHP 4
A problema con database (mysql - php) PHP 1
L PHP: problema con query mysql. PHP 3
S Autocompletamente con jQuery, PHP e MySQL - Problema con le query PHP 7
T Problema: Confronto date con Mysql PHP 3
A problema con php and mysql aiuto !!!! PHP 1
T Problema con form e recupero dati da mysql PHP 17
T Problema condizione di un form con mysql PHP 15
R Problema con UPDATE su DB mysql MySQL 1
K [MYSQL] problema con una query in loop MySQL 1
B Problema con query mySql Java 2
A problema con query mysql PHP 1
F problema nella connessione con mysql presente in Aruba PHP 3
G Problema con gestore esterno Mysql PHP 11
M Problema con newslettere e mysql PHP 7
M mysql 4 problema con tabella frm Database 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1

Discussioni simili