URL: https://www.overclockers.at/coding-stuff/php_insert_into_problem_117118/page_2 - zur Vollversion wechseln!
Das mit dem String Verketten ist imo ned notwendig, zumindest bei mir gehts auch so:
"INSERT INTO galerie (ga_a_u_id, ga_name, ga_text, ga_anzeige) VALUES ('$ga_a_u_id', '$ga_name', '$ga_text', '$anzeige')"
ja klar gehts auch so. ist aber ned schön und bei arrays ungut zu handlen
y?Zitatbei arrays ungut zu handlen
klar du kannst es so machen: "blablabla $var[muh] schalalala";
wenn du aber z.b. var[muh1] var[muh2] funkts schon wieder ned =>
"blablablabla ".$var["muh".$lauf]." schalalalala";
done
klar, deshalb kann mans auch nicht verallgemeinern.
wollt nur wissen ob ich etwas nicht geschnallt hab 
ist das: "blablabla $var[muh] schalalala"
eigentlich "korrekt"? ich mein es wird interprediert... aber das hat ja bekanntlich wenig zu bedeuten
sicher ist das korrekt.
das einzige, dass jetzt noch hinzuzufügen wäre um ein php-stringhandling faq zu komplettieren, wäre der grenzfall "schalalalala {$var}in the morning" 
jo und was machst wennst a array insertn willst? dann wirds SO _nicht_ gehnZitat von RömiDas mit dem String Verketten ist imo ned notwendig, zumindest bei mir gehts auch so:
"INSERT INTO galerie (ga_a_u_id, ga_name, ga_text, ga_anzeige) VALUES ('$ga_a_u_id', '$ga_name', '$ga_text', '$anzeige')"
da kommst um die punkte nicht umhin. ich ziehs vor, es lieber immer so zu machn, als einmal zu vergessn
funktioniert auch so.Die punkte brauchst du nicht, du kannst ja { und } nehmen:
Aber sauber ists sowieso ueber sprintf (imho):Code: PHP$sql = "INSERT INTO foo(a,b) VALUES('{$array['index']}', '{$object->property}')";
Das ganze ist dann nicht so eine unverdaubare String-Wurscht.Code: PHP$sql = sprintf("INSERT INTO foo(a,b) VALUES('%s', '%s')", $array['index'], $object->property );
Ums ueberpruefen der Werte kommt man aber eh' nie rum.Code: PHP$sql = sprintf("INSERT INTO foo(num) VALUE(%d)", $kannAuchStringSeinTrotzdemKeinSQLError );
aber mit arrays gehts glaub ich auch
Code: PHP"INSERT INTO tmp SET bla = 'result[nix]'"
Es geht in den meisten Fällen so, wie du es dir wünschst, kann aber auch zu Problemen führen.Zitat von semteXist das: "blablabla $var[muh] schalalala"
eigentlich "korrekt"? ich mein es wird interprediert... aber das hat ja bekanntlich wenig zu bedeuten
So ergibt sich folgende Ausgabe:Code:<? define("MUH", "bla"); $arr = array("MUH" => "1", "bla" => "2"); echo "$arr[MUH] <br>"; echo $arr[MUH] . "<br>"; echo "${arr[MUH]} <br>"; echo "... ".$arr['MUH']. " ..."; ?>
Das hängt damit zusammen, dass PHP "Konstanten", die es nicht kennt, einfach zu Strings umwandelt, die den Namen der Konstanten enthalten. Ich würde also damit vorsichtig sein und es lieber "sauber" mit .$arr['MUH']. machenCode:1 2 2 ... 1 ...

ich pers. seh aber keine notwendigkeit sprintf oä zu verwenden, die schreibweise mit den { } war mir nicht bekannt, find sie aber nicht wirklich "ansprechend". mit . funktionierts fein, hab noch nie probleme damit ghabt und deshalb is es für mich "der richtige lösungsweg"Zitat von RektalDie punkte brauchst du nicht, du kannst ja { und } nehmen:Aber sauber ists sowieso ueber sprintf (imho):Code: PHP$sql = "INSERT INTO foo(a,b) VALUES('{$array['index']}', '{$object->property}')";Das ganze ist dann nicht so eine unverdaubare String-Wurscht.Code: PHP$sql = sprintf("INSERT INTO foo(a,b) VALUES('%s', '%s')", $array['index'], $object->property );
Bei Zahlen kommt auch ein gewisse Sicherheit mit, das kein String unabsichtlich reinrutschtUms ueberpruefen der Werte kommt man aber eh' nie rum.Code: PHP$sql = sprintf("INSERT INTO foo(num) VALUE(%d)", $kannAuchStringSeinTrotzdemKeinSQLError );
.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025