Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie sql
Forum PHP.pl > Forum > Bazy danych > MySQL
Ka-lolek
Witam,
dlaczego takie zapytanie jest wykonywane:

  1. $sql = "SELECT *
  2. FROM MASTER_PRODUCTS WHERE ID = '$_POST[sel_record]'";
  3. $sql_result = mysql_query($sql, $conn) OR die(mysql_error());


a takie juz nie
  1. $sql = 'SELECT *
  2. FROM MASTER_PRODUCTS WHERE ID = "$_POST[sel_record]"';
  3. $sql_result = mysql_query($sql, $conn) OR die(mysql_error());


(roznia sie one " i ' . Nigdy nie wiem kiedu uzywac apostrof, a kiedy cudzyslow... moze mi ktos to wytlumaczyc?tongue.gif
Prosze o odpowiedz
Pozdrawiam
aleksander
bo ID jest integerem a w drugim przykładzie podajesz go jako string?

ehh, także dlatego, że string zapisywany pomiędzy apostrofami nie jest parsowany przez php i $_POST[sel_record] nie jest zamieniany na jego wartośc.

BTW $_POST['sel_record'] lub $_POST["sel_record"] a nie $_POST[sel_record]
Jabol
Cytat(aleksander @ 2005-07-30 14:27:44)
BTW $_POST['sel_record'] lub $_POST["sel_record"] a nie $_POST[sel_record]

tak po prawdzie to: {$_POST['sel_record']}

a co do problemu to:
tekst pomiędzy " " jest parsowany przez php. php wyszukuje w nim znaki specjalne i podstawia odpowiednie wartości (w tym np. \n, \t oraz zmienne).
tekst pomiędzy ' ' nie jest parsowany i jedyna kombinacja, która jest podmieniana to \' na '.
Ka-lolek
smile.gif wybaczcie , ze spytam... co to jest integer i string;]
strife
Cytat(Ka-lolek @ 2005-07-30 20:25:55)
smile.gif wybaczcie , ze spytam... co to jest integer i string;]

grrr....

http://pl.php.net/manual/pl/language.types.php

tongue.gif
Ka-lolek
Cytat(aleksander @ 2005-07-30 12:27:44)
bo ID jest integerem a w drugim przykładzie podajesz go jako string?

po czym to wnioskujesz? bo nie wiem..


i jeszcze jedno:
Jabol napisal:
tekst pomiędzy ' ' nie jest parsowany i jedyna kombinacja, która jest podmieniana to \' na '.


no to wlasnie w pierwszym przypadku jest '$_POST[sel_record]' czyli nie powinno byc zamienione na wartosc, a w rzeczywistosci dziala...
w sumie, to w obydwuch przypadkach zmienna $_POST[sel_record] jest pomiedzy apostrofami:P raz tylko sa one bezposrednio przy niej, a w drugim przypadku troche dalej:P takze nadal nie wiem dlaczego w pierwszym przypadku dzialalo... mozecie mi to w jakis przystepniejszy sposob wytlumaczyc zasade kiedy nalezy pisac " a kiedy '
aleksander
napisze przykładami bo trudno mi tłumaczyc smile.gif
  1. <?php
  2.  
  3. $var = 'BLAH';
  4. echo &#092;"to jest $var\"; // wyswietli: to jest BLAH
  5. echo 'to jest $var'; // wyswietli: to jest $var
  6. echo 'to jest ' . $var; // wyswietli: to jest BLAH
  7. echo &#092;"to jest $var\"; // wyswietli: to jest $var
  8. ?>


PS1: Jeżeli jeszcze raz mi napiszesz indeks tablicy asocjacyjnej bez cudzysłowia lub apostrofu, zrobie Ci wjazd na chate i połamie ręce. Jasne?biggrin.gif

PS2: Jeżeli nie wiesz o co chodzi w PS1 czytaj: http://www.php.pl/artykuly/dla_poczatkujac...ch_programistow
Jabol
@aleksander zapomniałeś o najważniejszej i jedynej poprawnej metodzie
  1. <?php
  2. $arr=array(&#092;"a\", \"b\");
  3. $str=&#092;"ab\";
  4. print &#092;"$arr: array(2) { [0] => {$arr[0]}, [1] => {$arr[1]}\";
  5. print &#092;"$str: string(2) => {$str}\";
  6. ?>
WSZYSTKIE zmienne należy zamykać w nawiasy klamrowe. I od razu kończy się problem ze zmiennymi indeksowanymi.
Ka-lolek
@aleksander ad P.S.1 postaram się zapamiętać:P byłoby mi łatwiej gdyby nie działała taka forma:] , a że skrypt działa jeżęli jest wpisane cos takiego: $_POST[sel_record], to po co wpisywac $_POST['sel_record']tongue.gif.

@Jabol - pierwszy raz sie z takim czyms spotykam... mozesz cos o tym napisac albo podac linka gdzie to jest opisane? ew. napisz nazwe pod jaka szukac tego zagadnienia w internecie/kursach:)


Pozdro
ikioloak
Cytat(Ka-lolek @ 2005-07-31 16:41:58)
a że skrypt działa jeżęli jest wpisane cos takiego: $_POST[sel_record], to po co wpisywac $_POST['sel_record']tongue.gif.

http://pl.php.net/manual/pl/language.types.array.php i tam mniej wiecej na poczatku masz opisane co i jak powinno byc i dlaczego robisz zle.
Jabol
@Ka-lolekhttp://pl.php.net/manual/en/language.types.string.php
Ka-lolek
  1. <?php
  2. // Won't work, use braces.  This results in a parse error.
  3. echo &#092;"A banana is $fruits['banana'].\";
  4. ?>


no to juz nie wiem jak to jest z tymi ' . czemu to niby ma nie dzialac?

edit
czy mozna przyjac tak, ze zamiast ' i " wkladam zmienne omiedzy {} tak jak napisal Jabol i reszte mam juz z glowy:>?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.