Ciao a tutti
Premetto che non sono ferratissimo in php. Il mio problema è che non capisco perchè con una sola istruzione "Insert Into" di mysql mi inserisce più righe, per la precisione 17.
Di seguito i passaggi:
//Chiamo la classe per aprire la connessione PDO
//Creo la stringa sql
//Chiamo la funzione di classe "statement" per eseguire la query
CODE=php]$rows = $conn->statement(array("insert", $sql, "valorecampo1", "valorecampo2"));[/CODE]
//Chiudo la connessione
Di seguito la classe database (ho tolto i riferimenti alla connessione)
Premetto che non sono ferratissimo in php. Il mio problema è che non capisco perchè con una sola istruzione "Insert Into" di mysql mi inserisce più righe, per la precisione 17.
Di seguito i passaggi:
//Chiamo la classe per aprire la connessione PDO
PHP:
$conn = new database();
//Creo la stringa sql
PHP:
$sql = "Insert Into NomeTabella (campo1, campo2) Values (?, ?)";
//Chiamo la funzione di classe "statement" per eseguire la query
CODE=php]$rows = $conn->statement(array("insert", $sql, "valorecampo1", "valorecampo2"));[/CODE]
//Chiudo la connessione
PHP:
$conn->disconnect();
Di seguito la classe database (ho tolto i riferimenti alla connessione)
PHP:
class database {
private $connection;
function __construct() {
$this->connection = $this->connect();
}
function connect() {
try {
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$connection = new PDO($this->dbtype . ":host=" . $this->dbhost . ";dbname=" . $this->dbname, $this->dbuser, $this->dbpass, $options);
return $connection;
}
catch (PDOException $e) { echo $e->getMessage(); }
}
function statement($call) {
$action = strtolower(array_shift($call)); // Parametro 0
$query = array_shift($call); // Parametro 1
$filters = $call; // Parametri filtro
$stmt = $this->connection->prepare($query);
if(isset($filters) && !empty($filters) && is_array($filters)) {
foreach ($filters as $key => &$filter) {
$filter = filter_var($filter, FILTER_SANITIZE_STRING);
$stmt->bindParam(($key + 1), $filter);
}
}
$stmt->execute();
$results = false;
switch ($action) {
case "select":
$results = $stmt->fetchAll(); break;
case "insert":
$results = $stmt->rowCount(); break;
default: break;
}
return $results;
}
function disconnect() {
$this->connection = null;
}
}