Barra laterale

programmazione:php:funzione_per_interagire_con_database

Una possibile via pulita per iteragire con una tabella e PDO

Autore: Fabio Di Matteo
Ultima revisione: 12/07/2023 - 11:53

Ritorno un array con 2 chiavi. Una col codice di risposta (OK oppure ERR) e l'altra col messaggio d'errore oppure l'ultimo id inserito.

function insertMovimento($descr,$person,$price)
	{
		global $DSN;
 
		if (!sbonText($descr))
		{ 
			$res['status']='ERR';
			$res['msg']='Errore: Caratteri non ammessi in descrizione!';
			return $res;
		}
		if (!sbonText($person))
		{ 
			$res['status']='ERR';
			$res['msg']='Errore: Caratteri non ammessi in nel campo persona!';
			return $res;
		}
		if (!sbonValuta($price))
		{ 
			$res['status']='ERR';
			$res['msg']='Errore: Caratteri non ammessi nel campo prezzo!';
			return $res;
		}
 
 
		$date=date('Y-m-d');
		try {
			$dsn= $DSN;
			$dbh = new PDO($dsn);
			$stmt = $dbh->prepare("insert into movimenti (id , descr, person, price, date)
				values (null, :DESCR, :PERSON , :PRICE, :DATE) ;"  );
 
			$stmt->bindParam(':DESCR', $descr, PDO::PARAM_STR);
			$stmt->bindParam(':PERSON', $person, PDO::PARAM_STR);
			$stmt->bindParam(':PRICE', $price);
			$stmt->bindParam(':DATE', $date, PDO::PARAM_STR);
 
			if ( $stmt->execute() )
			{
				 $res['status']='OK';
				 $res['lastid'] = $dbh->lastInsertId();
				 $dbh = null;
				 return $res;
			}else{
				$res['status']='ERR';
				$res['msg']='Errore: errore nella query!';
				return $res;
			}
 
		} catch (PDOException $e) {
			$res['status']='ERR';
			$res['msg']='PDOException: '. $e->getMessage();
			return $res;
		}
	}

Utilizzo

$e=insertMovimento($descr,$person,$price);
	if ($e['status']=='OK')
	{
		$lastInsertId=$e['lastid'];
		// ok
	}else{
 
		$errore=$e['msg'];
		//errori
	}

programmazione/php/funzione_per_interagire_con_database.txt · Ultima modifica: 12/07/2023 - 11:57 da Fabio Di Matteo