Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wywoływanie funkcji pomiędzy klamrami w cudzysłowiu
soundtrack
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2014

Ostrzeżenie: (0%)
-----


Do wykonywania zapytań stosuje takowy zapis:
  1. $time = time( );
  2.  
  3. DB::query( "UPDATE bw_gracze SET online = {$time} WHERE gid = {$this->player['gid']} LIMIT 1" );

Dla zwiększenia czytelności i sprawienia, aby cała składnia zapytania była kolorowana przez edytor.

Problem pojawia się, gdy chce umieścić w zapytaniu wynik jakiejś funkcji, gdyż nie mogę zastosować takiego zapisu:
  1. DB::query( "UPDATE bw_gracze SET online = {time()} WHERE gid = {$this->player['gid']} LIMIT 1" );

Istnieje jakiś sposób, aby nie trzeba było tworzyć niepotrzebnych zmiennych z wynikami funkcji? (IMG:style_emoticons/default/tongue.gif)
O operatorze konkatenacji słyszałem, ale nie chce stosować tego rozwiązania (IMG:style_emoticons/default/wink.gif)

Ten post edytował soundtrack 15.09.2014, 19:37:37
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
O operatorze konkatenacji słyszałem, ale nie chce stosować tego rozwiązania
To niech ci się zachce. Po to go wymyslono.

przenosze na przedszkole
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #3





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(soundtrack @ 15.09.2014, 20:36:01 ) *
Do wykonywania zapytań stosuje takowy zapis:
  1. $time = time( );
  2.  
  3. DB::query( "UPDATE bw_gracze SET online = {$time} WHERE gid = {$this->player['gid']} LIMIT 1" );

Dla zwiększenia czytelności i sprawienia, aby cała składnia zapytania była kolorowana przez edytor.

Problem pojawia się, gdy chce umieścić w zapytaniu wynik jakiejś funkcji, gdyż nie mogę zastosować takiego zapisu:
  1. DB::query( "UPDATE bw_gracze SET online = {time()} WHERE gid = {$this->player['gid']} LIMIT 1" );

Istnieje jakiś sposób, aby nie trzeba było tworzyć niepotrzebnych zmiennych z wynikami funkcji? (IMG:style_emoticons/default/tongue.gif)
O operatorze konkatenacji słyszałem, ale nie chce stosować tego rozwiązania (IMG:style_emoticons/default/wink.gif)


Ja niestety mam za małą wiedzę ale od ok. php 5.3 lub 5.1 jest zmienna z time(); pod $_SERVER['REQUEST_TIME']; w twoim przypadku.
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




ps: akurat aktualny czas, to mozesz pobrac w mysql, bez korzystania z php
... online = now()....

Cytat
jest zmienna z time(); pod $_SERVER['REQUEST_TIME']; w twoim przypadku.
To jest czas żądania na serwer a nie czas w ktorym wykonano dany kawalek kodu php. No i bez przesady by z takich rzeczy korzystac do pobrania czasu...
Go to the top of the page
+Quote Post
soundtrack
post
Post #5





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2014

Ostrzeżenie: (0%)
-----


kurka.. chyba jest jakiś sposób na to, przecież nie bez powodu dano w stringach klamry i nie bez powodu korzysta z tego rozwiązania wiele osób w zapytaniach. przerywanie stringa kropką, powoduje utratę kolorowania składni w wielu edytorach, zapewne dlatego stosuje się klamry w queries.

NOW() może rozwiązać jedynie problem czasu.. a co z własnymi funkcjami.

nie, nie, nie. tak łatwo nie odpuszczę. nie zastosuje tych dwóch kropek (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
kalipek
post
Post #6





Grupa: Zarejestrowani
Postów: 43
Pomógł: 13
Dołączył: 3.02.2011

Ostrzeżenie: (0%)
-----


  1. DB::query(sprintf("UPDATE bw_gracze SET online = %s WHERE gid = %s LIMIT 1", time(), $this->player['gid']));
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
nie bez powodu dano w stringach klamry i nie bez powodu korzysta z tego rozwiązania wiele osób
Klamry wymyślono na potrzeby zmiennych. Przyjmij to do wiadomosci albo bujaj się z bezsensownym problemem przez kolejne dwa lata (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #8





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(soundtrack @ 15.09.2014, 20:48:35 ) *
i nie bez powodu korzysta z tego


klamry w cudzyslowiach sa kiedy chcesz miec tam spacje lub znak _ itd bez robienia falszywej zmiennej
czyli:

$x = 'b';
echo "a{$x}c"; //poprawne, "abc";
$y = 'c';
echo "ab$yc"; //undefined variable, niema zmiennej $yc,

@nospor, o.O dzieki za cenna uwage, jak widac nie mozna wierzyc kazdemu artykulowi.

Cytat
It depends.
$_SERVER['REQUEST_TIME']
corresponds to the time when the
request has started, the web
server provides this data.
time() actually runs a syscall in
order to check the time when this
line is called.
.

Ten post edytował ZaXaZ 15.09.2014, 19:58:40
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
@nospor, o.O dzieki za cenna uwage, jak widac nie mozna wierzyc kazdemu artykulowi.
No ale w tym cytacie co podales, wszystko sie zgadza. Gdzie widzisz rozbieznosc?
Go to the top of the page
+Quote Post
ZaXaZ
post
Post #10





Grupa: Zarejestrowani
Postów: 285
Pomógł: 18
Dołączył: 30.01.2014
Skąd: <?=$_GET['city']?>

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.09.2014, 20:58:27 ) *
No ale w tym cytacie co podales, wszystko sie zgadza. Gdzie widzisz rozbieznosc?


no wlasnie potwierdzenie ze sie zgadza, a w blad mnie wprowadzil jakis polak jak sie uczylem optymalizacji (IMG:style_emoticons/default/biggrin.gif) gdzies ma artykul ze time()==$_SERVER['REQUEST_TIME']; a nie chcialo mi sie googlowac, bo przy maaalym skrypcie wynik byl identyczny.
Go to the top of the page
+Quote Post
r4xz
post
Post #11





Grupa: Zarejestrowani
Postów: 673
Pomógł: 106
Dołączył: 31.12.2008

Ostrzeżenie: (0%)
-----


To może PDO + bindValue? Poza kolorkami zyskasz jeszcze trochę bezpieczeństwa (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Martin-ZG
post
Post #12





Grupa: Zarejestrowani
Postów: 28
Pomógł: 3
Dołączył: 23.07.2009

Ostrzeżenie: (10%)
X----


Kod
class test{

    function getName(){

        return 'abc';    
    }

}

$obiekt = new test;

echo "wuala : {$obiekt->getName()}";


Ten post edytował Martin-ZG 15.09.2014, 20:34:58
Go to the top of the page
+Quote Post
Turson
post
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


  1. DB::query( "UPDATE bw_gracze SET online = ".$time." WHERE gid = ".$this->player['gid']." LIMIT 1" );

czemu nie tak (IMG:style_emoticons/default/ohmy.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




@Turson toć autor juz pisał czemu nie tak.... bo mu kolorowanie szlag trafia...
Go to the top of the page
+Quote Post
soundtrack
post
Post #15





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 31.07.2014

Ostrzeżenie: (0%)
-----


(IMG:http://iv.pl/images/96340060340739038684.jpg)

(IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
by_ikar
post
Post #16





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Zapytanie nadal może być kolorowane przez edytor, jeżeli:

- odpowiednio ustawisz edytor (możliwość mieszania języków),
- masz odpowiedni edytor,
- PDO i bindvalue jak ktoś zasugerował,
- ORM gdzie ci kolorowanie raw sqla w większości sytuacji nie będzie potrzebne.


PS cudzysłów jest wolniejsze niż apostrof, ponieważ php dodatkowo parsuje stringi w poszukiwaniu zmiennych/klamr. Niby niewiele, ale przy kilkuset takich linijkach jest różnica..
Go to the top of the page
+Quote Post
Turson
post
Post #17





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Cytat(soundtrack @ 15.09.2014, 22:11:33 ) *

Nie wiedziałem, że w programowaniu najważniejsze jest kolorowanie składni
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 20:17