hey leute,
ich baue mir gerade eine variable insert funktion zusammen.
als parameter werden unter anderem tabellen name, werte etc uebergeben.
daraus wird das sql statement zusammengebaut und soll dann mittels prepared statement ausgefuehrt werden.
jetzt muss eine bestimmte funktion benutzten und zwar call_user_func_array.
wie sie allgemein funktioniert ist mir bewusst, meine frage waere jetzt aber, ob man bereits vorhandene funktionen als callback funktion benutzten kann oder ob es eine eigene sein muss?
hier der code:
und zwar moechte ich die mysqli_stmt_bind_param funktion benutzten.
jedoch erhalte ich folgenden fehler:
kann mir da jemand weiterhelfen?
mfg
mad dog
ich baue mir gerade eine variable insert funktion zusammen.
als parameter werden unter anderem tabellen name, werte etc uebergeben.
daraus wird das sql statement zusammengebaut und soll dann mittels prepared statement ausgefuehrt werden.
jetzt muss eine bestimmte funktion benutzten und zwar call_user_func_array.
wie sie allgemein funktioniert ist mir bewusst, meine frage waere jetzt aber, ob man bereits vorhandene funktionen als callback funktion benutzten kann oder ob es eine eigene sein muss?
hier der code:
Code:
public function insert($ignore, $table, $rows, $values, $type)
{
$sql = 'INSERT';
// IGNORE checken
if ($ignore === TRUE)
{
$sql .= ' IGNORE';
}
// Tabellenname einfuegen
if ((empty($table) === FALSE) AND (is_array($table)) === FALSE)
{
$sql .= ' INTO '.$this->real_escape_string(trim($table));
}
else
{
return FALSE;
}
if ((empty($rows) === FALSE) AND (is_array($rows) === TRUE))
{
// Namen der Spalten saeubern
$escapedKeys = array_map(array($this, 'escape_string'), array_values($rows));
// Spalten einfuegen
$sql .= ' ('.implode(', ', $escapedKeys). ')';
// Platzhalter fuer die werte einfuegen
$sql .= ' VALUES ('.implode(', ', array_fill(0, count($rows), '?')).')';
}
else
{
return FALSE;
}
$array1 = array_merge((array)$type, $values);
if (!($this->mysqli_stmt->prepare($sql)))
{
return FALSE;
}
else if (!call_user_func_array($this->mysqli_stmt->bind_param, $array1))
{
return FALSE;
}
else if (!($this->mysqli_stmt->execute()))
{
return FALSE;
}
else
{
if (($this->mysqli_stmt->affected_rows) == -1)
{
return FALSE;
}
else if (($this->mysqli_stmt->affected_rows) == 0)
{
return FALSE;
}
else
{
return TRUE;
}
}
}
und zwar moechte ich die mysqli_stmt_bind_param funktion benutzten.
jedoch erhalte ich folgenden fehler:
Warning: call_user_func_array() expects parameter 1 to be a valid callback, no array or string given in C:\Programs\xampp\htdocs\9mango\acp\core\classes\class_db.php on line 437
false
kann mir da jemand weiterhelfen?
mfg
mad dog