Badboy46: String escapen für SQL Insert

Beitrag lesen

Hallo,

ich hab mir hier eine Funktion gebastelt

function _db_insert($tabelle, $spalte, $wert){
  global $db;
  $spalte1 = '';
  $wert1 = '';
  foreach ($spalte as $text) $spalte1 .= $text.',';
  foreach ($wert as $text) $wert1 .= '''.$db->escapeSimple($text).'',';
  $spalte = substr($spalte1, 0, strlen($spalte1)-1);
  $wert = substr($wert1, 0, strlen($wert1)-1);
  $sql = sprintf ('INSERT INTO %s (%s) VALUES (%s)', _DBTAB.$tabelle, $spalte, $wert);
  $result = $db->query($sql);
  if(DB::isError($result)){
    die($result->getMessage());
    exit();
  }
}

wenn ich mir da $sql ausgeben lasse, kommt soetwas bei raus

INSERT INTO user (_username_r, _username, _password, _email, _reg_email, _reg_date, _last_login, _rang, _fehlversuche, _fehlversuchzeit) VALUES ('kay'"aad','kay'"aad','200820e3227cf69c1756a6b531e7e0d2','kay@xxx.de','kay@xxx.de','1090147928','1090147928','user','0','1090147928')

wenn ich dann in phpMyAdmin schaue, wurde der Nick so eingetragen
kay'"aad statt so kay'"aad

kann mir einer sagen, warum das so ist?

$spalte und $wert sind arrays
$db = http://pear.php.net/manual/de/package.database.php

Kay