Ciao a tutti... mi dareste una manina con questo scriptino?

Premetto che per tutto il sito uso la notazione ad oggetti, vorrei uniformarlo...

codice:
<?php
require 'dbconfig.php';
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die;
mysql_select_db(DB_NAME) or die;
//I valori in input vanno verificati
//id deve essere un valore numerico
$pid = (int)$_REQUEST['id'];
//maschera  eventuali caratteri speciali in table 
$tb = mysql_real_escape_string($_REQUEST['table'], $conn);

switch($tb) {
	case 'regioni':
		$sql="SELECT id, regione FROM `$tb` ORDER BY regione";
		break;
	case 'province':
		//$sql="SELECT id, provincia FROM `$tb` WHERE id_regione=$pid ORDER BY provincia";
		$sql="SELECT codice, provincia FROM `$tb` WHERE id_regione=$pid ORDER BY provincia";
		break;
	case 'comuni':
		$sql="SELECT id, comune FROM `$tb` WHERE id_provincia = $pid ORDER BY comune";
}
//Il primo elemento della risposta è il nome della tabella (= attributo ID del tag select)
$out="$tb;";
if($result = mysql_query($sql, $conn)) {
	while ($row = mysql_fetch_row($result)) {
		$out .= $row[0] . '|' . $row[1] . ';';
	}
}
//Rimuove il carattere ; in coda
echo rtrim($out, ';');
?>
Ricevuti in input get un ID e una TABELLA, tira fuori un array ripetuto....

Dove trovo difficoltà è qui

codice:
if($result = mysql_query($sql, $conn)) {
	while ($row = mysql_fetch_row($result)) {
		$out .= $row[0] . '|' . $row[1] . ';';
	}
}
Infatti l'ultima parte l'avevo scritta cosi ma non va...

codice:
[...]
$result = @$mysqli->query($sql);

if(@$result->num_rows > 0) {
		
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$out .= $row[0] . '|' . $row[1] . ';';
}
Ma mi dice "Call to a member function fetch_row() on a non-object "

grazie a tutti!


[/code]