Autor | Zpráva | ||
---|---|---|---|
wix Profil * |
#1 · Zasláno: 17. 10. 2011, 16:54:03
Dobrý den, nevíte někdo jak použít funkci func_get_args(), aby po po zadání:
$id = "2"; funkce("SELECT * FROM db WHERE id='%i'", $id); Vrátila toto: SELECT * FROM db WHERE id='2' Děkuji |
||
Majkl578 Profil |
#2 · Zasláno: 17. 10. 2011, 16:58:16
Nehledáš spíš sprintf?
|
||
wix Profil * |
#3 · Zasláno: 17. 10. 2011, 17:04:50
Majkl578:
Nejsem si jistý jakou funkci použít, doufal jsem že je to func_get_args(), ale chtěl jsem dosáhnout toho aby jsem do funkce mohl vkládat neomezeně proměnných. Například: $id = "2"; $name = "test"; funkce("SELECT * FROM db WHERE id='%i'", $id, AND name='%s', $name); //Doufám že jsem dal dobrý příklad Vrátí: SELECT * FROM db WHERE id='2' AND name='test' |
||
wix Profil * |
#4 · Zasláno: 17. 10. 2011, 17:05:58
Omlouvám se, takto je to správně:
$id = "2"; $name = "test"; funkce("SELECT * FROM db WHERE id='%i'", $id, "AND name='%s'", $name); //Doufám že jsem dal dobrý příklad |
||
wix Profil * |
#5 · Zasláno: 17. 10. 2011, 20:27:58
Na internetu jsem našel jen toto, ale vůbec mi to nefunguje:
<?php function query(/*query [, $arg1...$argN]*/){ $query = call_user_func_array('replaceAndClean', func_get_args()); $result = mysql_query($query); return $result; } function replaceAndClean(/*query [, $arg1...$argN]*/){ $args = func_get_args(); if(count($args) == 1){ return $args[0]; } $query = array_shift($args); return vsprintf($query, array_map('mysql_real_escape_string', $args)); } ?> |
||
whoami Profil |
#6 · Zasláno: 19. 10. 2011, 19:22:27
Mno z toho co tu píšeš mi není zcela jasné co je tvůj cíl.
Pokud je to složení požadavku tak takto: $table = 'users'; $id = $_GET['id']; $query = sprintf("SELECT * FROM ´%s´ WHERE ´ID´ = '%s' LIMIT 1", $table, $id); Vrátí ti: SELECT * FROM ´users´ WHERE ´ID´ = 'XYZ' LIMIT 1 samozdřejmě je potřeba ještě proměné ošetřít kvůli sqli..! Pokud jses ptal na něco jiného tak buď prosím podrobnější.. |
||
Časová prodleva: 13 let
|
0