• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[gelöst] sprintf problem

Status
Für weitere Antworten geschlossen.

Frank

Neues Mitglied
Hi, ich habe grade ein Problem mit der funktion sprintf.

Ich habe eine MySQL Klasse die das Query annimmt und dann erstmal die parameter escapen soll. Soweit kein problem, nur hab ich probleme mit der übergabe der Parameter.

Normalerweise benutz man die Funktion ja so (Beispiel)
PHP:
<?php
print sprintf("%s bla %s","bli","blu"); //Ausgabe: bli bla blu
?>
Ich bekomme nur leider die parameter "bli", "blu" nicht so, sondern so
array("bli","blu");

Bei mir sähe die Funktion also so aus
PHP:
<?php
print sprintf("%s bla %s",array("bli","blu")); //Ausgabe: array bla
?>
was natürlich nicht mehr funktioniert.

Die frage ist nun wie ich mein array("bli","blu") so anpassen kann, also praktisch zerlegen, das es geht.
 
Werbung:
ruf sie doch einzeln auf.

PHP:
$dein_array = array("bli","blu");
print sprintf("%s bla %s", $dein_array[0], $dein_array[1]); //Ausgabe: array bla
 
Werbung:
wenn du alle so zuammen fügen willst

Code:
'%s', '%s', '%s'

empfehle ich dir eher implode und wenn du wirklich nicht weißt wie lang der ist du aber trotsdem abstände haben willst also

Code:
%s bla %s %s %s

dann wird dir nix anderes übrig bleiben als eine schleife zu verwenden.
 
das verstehst falsch

also so sieht der qt aus
PHP:
function query() {
  $arguments = func_get_args();
  $query = array_shift($arguments);
  $args = array();
  foreach($argument as $a) {
    $args[] = mysql_real_escape_string($a);
  }
  mysql_query(sprintf($query, $args));
}

So in etwa, halt nur als Methode einer Klasse.
dann sähe ein aufruf z.b. so auf
PHP:
query("SELECT * FROM %s","meine_tabelle");
könnt ja aber auch so aussehen
PHP:
query("SELECT %s FROM %s WHERE userid = %u","user","meine_tabelle",1234);

deshalb weiß ich nicht wie groß das array ist.
 
Ich habe da was in einem meiner aktuellen projekte das hab ich mir irgendwann mal aus dem internet rausgesucht ^^

Such...

Hier ^^

PHP: vprintf - Manual

//Edit: und zu deiner schleife ^^
PHP:
array_map('mysql_real_escape_string', $array);
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
na da nehm ich doch glatt slibbos variante^^ ist die einfachste.
Hab nicht gewusst das es die Funktion gibt, naja, man lernt immer dazu.

Das mit dem array_map ist auch ein netter Tipp. Danke.
 
Werbung:
Status
Für weitere Antworten geschlossen.
Zurück
Oben