Autor | Zpráva | ||
---|---|---|---|
robbie Profil * |
#1 · Zasláno: 21. 10. 2015, 12:31:51
Zdravím a potřeboval bych jen malou pomoc s vysvetlením uvozovek ´ " v příkladu. Moc nechápu, proč tam autor dává oba druhy ´" a už před . tečku. A ne až za ni. Myslím tím toto: ´ " .mysqli_real_escape_string......
Dekuji moc za objasnění.. Příklad: $sql_prikaz ="ÏNSERT INTO kniha_navstev(datum,jmeno,zapis)"."VALUES(NOW()),´ " .mysqli_real_escape_string($db_spojeni,$_POST[´jmeno´])." ´,´ " .mysqli_real_escape_string($db_spojeni,$_POST[´prijmeni´])." ´)"; |
||
Keeehi Profil |
#2 · Zasláno: 21. 10. 2015, 12:43:29
Uvozovkyj(") jsou v tomto případě pro PHP a obalující s s nimi řetězce.
Apostrof (') je z pohledu PHP momentálně chápán jako jakýkoliv jiný znak v řetězci. Proč tam je? Nebo protože v SQL musejí být řetězce zase odděleny od ostatních částí. |
||
Martin2 Profil * |
#3 · Zasláno: 21. 10. 2015, 12:59:40
Keeehi:
„Proč tam je? Nebo protože v SQL musejí být řetězce zase odděleny od ostatních částí.“ robbie pravděpodobně myslí zpětnou uvozovku ` (nebo jak se jí vlastně říká). Tu MySQL používá pro názvy objektů. Je nepovinná, ale nezbytná v případech, kdy by docházelo ke kolizi s jinými názvy.
|
||
lionel messi Profil |
robbie:
Celý príklad je chybný (či už vinou autora učebnice alebo nesprávneho prepisu). $sql_prikaz ="INSERT INTO kniha_navstev(datum,jmeno,zapis) VALUES(NOW(), '" .mysqli_real_escape_string($db_spojeni,$_POST["jmeno"])."', '" .mysqli_real_escape_string($db_spojeni,$_POST["prijmeni"])."')"; Takpovediac všetky spätné apostrofy ` boli na nevhodných miestach, bolo ich nutné nahradiť jednoduchými '. Pokiaľ si nie si presne istý, čo robíš, je najlepšie používať ich iba v nevyhnutných prípadoch (napr. keď máš pomenovanú tabuľku key — key je aj kľúčové slovo MySQL pre kľúč, musíš preto písať `key` ).
Na jednom mieste (za volaním funkcie NOW) naviac prevyšovala uzatváracia zátvorka, takýto dotaz zákonite skončí syntaktickou chybou. Rád by som vedel, aká je to učebnica (nech viem, čo neodporúčať). |
||
Jan Kozák Profil |
robbie:
Příklad je zřejmě chybně zkopírovaný. Na všech místech, kde je použit znak ´ (diakritická čárka), musí být „programátorský“, svislý apostrof ' . Znak, který uvádíš, nemá speciální význam ani v PHP, ani v MySQL.
Některé znaky sice podobně vypadají, ale funkci mají jinou: " – svislé, programátorské uvozovky slouží k označování řetězců, v běžném jazyce se nepoužívají; mají tvar dvou svislých čárek “ – české koncové a anglické počáteční uvozovky, v programování nemají speciální význam, používají se k vyznačení přímé řeči; mají tvar dvou šestek ” – anglické koncové uvozovky, v PHP bez speciálního významu, mají tvar dvou devítek ″ – označení palců (délka) a sekund (úhel), mají tvar dvou nakloněných čárek ' – svislý, programátorský apostrof slouží k označování řetězců, v běžném jazyce se nepoužívá; má tvar svislé čárky `– obrácený apostrof, v MySQL nepovinně označuje názvy sloupců, tabulek a databází, má využití i v PHP, v běžném textu nemá význam; má tvar obráceně nakloněné čárky ´– diakritická čárka, v češtině označuje délku samohlásek, v PHP nemá speciální význam; má tvar nakloněné čárky ´ – označení minuty (jednotka úhlu), v PHP bez významu; tvar dlouhé nakloněné čárky (vypadá jako nakloněný programátorský apostrof) ď – diakritický háček u znaků ď, ť; v PHP bez významu; má tvar devítky, není to tentýž znak jako typografický apostrof, v některých písmech ale vypadá stejně; myslím, že nejde napsat samostatně ‘ – české koncové a anglické počáteční jednoduché uvozovky; v PHP bez významu, v běžném textu se využívají např. u vložené přímé řeči; mají tvar šestky ’ – typografický apostrof a anglické koncové jednoduché uvozovky, v programování nemá speciální význam, používá se například v zápisu hovorové řeči nebo v angličtině v přivlastňovacích tvarech; má tvar devítky Obecný závěr o těchto čárkách je takový, že ty využitelné v programování jsou v běžném textu chybou. A naopak ty využitelné v běžných textech nemají v programování speciální význam. Aby se to ještě více zkomplikovalo, na klávesnici s českým rozložením nelze napsat české uvozovky ani apostrof. Zpět ke tvému dotazu. Apostrofy zároveň s uvozovkami se v opraveném příkladu používají proto, že uvozovky (v tomto případě) vymezují v PHP řetězec, který z pohledu MySQL obsahuje jak příkazy, tak řetězce – označené apostrofy. Lépe to uvidíš, když si funkce a proměnné nahradíš konkrétní hodnotou: $sql_prikaz = "INSERT INTO kniha_navstev (datum,jmeno,zapis) values (NOW(),'robbie','Nějaký text zápisu')"; $sql_prikaz = "INSERT INTO kniha_navstev (datum,jmeno,zapis) values (NOW(),'"."robbie"."','"."Nějaký text zápisu"."')"; $sql_prikaz = "INSERT INTO kniha_navstev (datum,jmeno,zapis) values (NOW(),'".funkce()."','".funkce()."')"; |
||
Robbie Profil * |
#6 · Zasláno: 22. 10. 2015, 03:17:30
Čerpal jsem z knihy : PHP a MySQL bez předchozích znalostí a děkuji moc za cenné rady..
|
||
Časová prodleva: 9 let
|
0