è più sicuro l'esempio postato da te ?
In questo caso no, perché la query è "fissata" e non dipende da input esterno, quindi non ci sono rischi di SQL injection e si può tranquillamente fare a meno di prepared statement.
Siccome nel resto del codice usi l'interfaccia a oggetti di mysqli, è opportuno farlo anche durante la connessione. Mettendo tutto assieme diventa così:
Codice PHP:
$con = new mysqli("localhost","nome","password", "nome");
$con->query("SET CHARACTER SET utf8;");
$sql = "SELECT cliente.id_cliente, cliente.nome, cliente.cognome, cliente.whatsapp, cliente.tessera, cliente.data_reg,
SUM(punti.punti) as punti FROM cliente INNER JOIN punti ON punti.id_cliente = cliente.id_cliente group by id_cliente";
if (($result = $con->query($sql)) === false) {
throw new Exception("Error with query \"$sql\": " . $mysqli->error);
}
echo json_encode($result->fetch_all());
Poiché il numero di risultati aumenterà all'aumentare del numero di clienti e punti, prima o poi la dimensione della risposta aumenterà così tanto da rallentare il sistema. Ma finché i clienti sono sotto il migliaio non mi preoccuperei, dopo bisognerà pensare alla paginazione.
Certo, puoi mandarmi un PM