Hallo, habe die Nacht durchgemacht und es bereitet mir Kopfschmerzen, bekomme das Problem nicht alleine gelöst.
Habe vor eine Funktion zu schreiben in der ich Arrays mitschicke und er sie dann in die Datenbank einträgt.
Das funktioniert aber nur zur hälfte,... hier mal der Code der Funktioniert
Der Teile jedoch....
lässt sich nicht mit einem Array füllen, egal welche Schreibweise ich versucht habe, entweder Vertauscht die Variablen oder gibt mir ein Error raus wegen der Syntax.
Wenn ich an der Stelle die Hochkommata weg lasse funktioniert es auch nicht daher habe ich das Gefühl das es mit der implode() Funktion an der Stelle so wie ich sie mit dem ersten Array gemacht habe nicht funktioniert.
Es wäre Super Wenn mir jemand Denkanstöße geben könnte oder vielleicht sogar des Rätsels Lösung
Da die Funktion noch im Aufbau ist erstelle ich alles innerhalb der Funktion,...Wenn es denn mal funktionieren sollte werden die Daten natürlich aninsertArrayToDB() übergeben.
Hier noch die db Klasse die ich verwende falls es hilft
Habe vor eine Funktion zu schreiben in der ich Arrays mitschicke und er sie dann in die Datenbank einträgt.
Das funktioniert aber nur zur hälfte,... hier mal der Code der Funktioniert
PHP-Code:
function insertArrayToDB($db){
$a=zufallsstring();
$b=zufallsstring();
$c=zufallsstring();
$array = array ( "nick", "email", "psw" );
$array2 = array ( $a, $b, $c );
try
{
$db->query("INSERT INTO user (".implode(',',$array).") VALUES ('$a','$b','$c') ");
}
catch(Exception $e)
{
echo $e->getMessage();
}
}
PHP-Code:
VALUES ('$a','$b','$c') ");
Wenn ich an der Stelle die Hochkommata weg lasse funktioniert es auch nicht daher habe ich das Gefühl das es mit der implode() Funktion an der Stelle so wie ich sie mit dem ersten Array gemacht habe nicht funktioniert.
Es wäre Super Wenn mir jemand Denkanstöße geben könnte oder vielleicht sogar des Rätsels Lösung
Da die Funktion noch im Aufbau ist erstelle ich alles innerhalb der Funktion,...Wenn es denn mal funktionieren sollte werden die Daten natürlich aninsertArrayToDB() übergeben.
Hier noch die db Klasse die ich verwende falls es hilft
PHP-Code:
class MyDB
{
private $connection;
public function connect($host, $database, $username, $password)
{
@$this->connection = new mysqli($host, $username, $password, $database);
if (mysqli_connect_errno()) throw new Exception(__METHOD__.'::'.mysqli_connect_error());
}
public function close()
{
if (!$this->connection) return false;
$this->connection->close();
}
public function query($sql, $return='affected', $result_mode=MYSQLI_USE_RESULT)
{
if (!$this->connection) throw new Exception('Connection missing');
$data = array();
if ($result = $this->connection->query($sql, $result_mode))
{
if ($return=='affected'){ $data = $this->connection->affected_rows; }
elseif ($return=='num'){ $data = $result->num_rows; }
elseif ($return=='bool'){ $data = ($result->num_rows > 0); }
elseif ($return=='id'){ $data = $this->connection->insert_id; }
elseif ($return=='assoc'){ while ($row = $result->fetch_assoc()) $data[] = $row; }
elseif ($return=='numeric'){ while ($row = $result->fetch_assoc()) $row = $result->fetch_array(MYSQLI_NUM); }
elseif ($return=='fields'){ while ($row = $result->fetch_fields()) $data[] = $row; }
if (is_object($result)) $result->close();
}
else
{
throw new Exception(__METHOD__.'::'.$this->connection->error.'::'.$sql);
};
return $data;
}
public function startTransaction($isolation_level="SERIALIZABLE")
{
if (!$this->connection) return false;
$isolation_level = strtoupper($isolation_level);
$ok = $this->query("SET TRANSACTION ISOLATION LEVEL {$isolation_level};", "bool");
$ok = ($ok && $this->query("SET AUTOCOMMIT=0;", "bool"));
return ($ok && $this->query("START TRANSACTION;", "bool"));
}
public function commit()
{
if (!$this->connection) return false;
if (!$this->query("COMMIT;", "bool")) return false;
$this->query("SET AUTOCOMMIT=1;", "bool");
return true;
}
public function rollback()
{
if (!$this->connection) return false;
if (!$this->query("ROLLBACK;", "bool")) return false;
$this->query("SET AUTOCOMMIT=1;");
return true;
}
}
Kommentar