Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Wangarad 05. 11. 2020, 16:18:28

Název: PHP MySQL vs MSSQL
Přispěvatel: Wangarad 05. 11. 2020, 16:18:28
Zakaznik ma databazu v MsSQL a bohuzial mam s toho smutok lebo musim poprepisovat vsetky query.
Zasekol som sa pri count().
V databaze pouzijem
Kód: [Vybrat]
SELECT COUNT(*) FROM [Result].[dbo].[Line01] WHERE [Station]= 'DFKRM067'ale neviem ako to vytiahnut v php do premennej.
Niekto tip?
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Logik 05. 11. 2020, 16:28:23
Nerozumím dotazu. Pokud použiješ PDO, tak čím se zde (kromě syntaxe pro escape identifikátorů) MySQL liší od MSSQL?
SELECT COUNT(...)je select jako každej jinej, to, že vrací vždy jednu řádku je z hlediska zacházení s výsledkem dotazu irelevantní(navíc při group by vracel i víc řádek, ale to už se evidentně zaplejtáme do vyšší dívčí... :-()
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Kit 05. 11. 2020, 17:18:34
Asi tam bude nutné použít alias:
Kód: [Vybrat]
SELECT COUNT(*) AS count
    FROM [Result].[dbo].[Line01]
    WHERE [Station]= 'DFKRM067'
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: hechj 05. 11. 2020, 23:08:32
Řekni mi, kdy jsi vzal zákazníka, když tu pokládáš triviální dotazy řešitelné čtením dokumentace. To je nějaká sranda?
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Wangarad 06. 11. 2020, 07:35:36
hechj : vies kazdy nieako zacinal. Ja viem ze ty si si nastudoval vsetky manualy, dokumentacie, vystudoval 3 vysoke skoly a ako hotovy clovek si hned nastupil do prace. Bohuzial ja musim skakat s projektu do projektu a casto uplne mimo moj obor lebo zameranie. Nestazujem sa len proste nie vzdy davam uplne vsetko.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: oss 06. 11. 2020, 07:57:00
No ked ides do dachoho noveho neuskodili by aspon elementarne zaklady.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Wangarad 06. 11. 2020, 08:34:11
oss mas pravdu. Obcas sa mi to strasne mixuje. S mysql na mssql s php na python pripadne c# a s5 a vlastne kazdy den v inom jazyku nieco zmenit. Niekde musi byt '' niekde praveze nie.Minule som sa pristihol ze pisem php do pythonu a rozmyslam preco to nejde. napriklad v horizonte par dni ma caka delphi az sa zamyslam ze preco.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Wangarad 06. 11. 2020, 08:45:43
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: jnnj 06. 11. 2020, 09:15:36
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() (https://www.php.net/manual/en/function.date.php) ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Kit 06. 11. 2020, 10:03:58
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() (https://www.php.net/manual/en/function.date.php) ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Možná sis nevšiml, že to nepotřebuje v PHP, ale v MSSQL.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: jnnj 06. 11. 2020, 10:37:39
Napriklad teraz. mysql dava cas ako potrebujem HH:mm mssql HH:mm:s a ries preco resp. ako to zmenit :/

dokumentace date() (https://www.php.net/manual/en/function.date.php) ukazuje způsob formátování času.

Například tady:
Kód: [Vybrat]
Example #4 date() Formatting
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)

Možná sis nevšiml, že to nepotřebuje v PHP, ale v MSSQL.

Dobrý den,
všiml, ale vycházím z cituji:
Citace
ale neviem ako to vytiahnut v php do premennej.
čili mu jde o formátování / zobrazení v PHP.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: jnnj 06. 11. 2020, 10:39:59
Pokud by přeci je Kit měl pravdu a jde tazateli jen o MS SQL formát datumu, pak SELECT FORMAT, popsané například tady (https://database.guide/how-to-format-the-date-time-in-sql-server/).
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Kit 06. 11. 2020, 11:28:18
Zajímavé, že všechny návody to uvádějí pro aktuální datum a čas. Přitom tazatele nejspíš zajímá prezentace času z databázových tabulek.
Kód: [Vybrat]
SELECT FORMAT([timestamp], 'hh:mm') AS ts
    FROM [Result].[dbo].[Line01]
    WHERE [Station]= 'DFKRM067'
Zbavme se iluze, že SQL dotazy pro MySQL a MSSQL (případně dalších db) mohou být stejné. Ovšem mohou dávat výsledky ve stejné struktuře. Následné použití v PHP je pak už hračkou bez zbytečného volání funkcí pro datum a čas.

Ovšem jako nejlepší se mi jeví vyzvednutí data a času ve formátu ISO8601 a jeho zformátování až v prohlížeči Javascriptem. Odstraní se tím problémy s časovými zónami.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: hechj 06. 11. 2020, 11:43:49
Sorry kámo. Samozřejmě jsem taky začínal od píky, nejsem kdovíjaký borec.
V databázi jsem vždy používal timestamp. V mysql jsou krásné funkce hour(), minute(), v MsSQL funkce date() s formatovacim řetězcem. Výstup formatuj v PHP. Ale jestli to chceš univerzální, tak to naformatuj v SQL a v PHP to nebudeš muset  rozlišovat. Doporučuji číst dokumentaci, zrovna na toto je to v PHP srozumitelné.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Tomas-T 06. 11. 2020, 13:56:40
Zrovna teď mám na stole zakázku na překlopení web aplikace (odhadem tak 100k řádek, 99% SQL kódu přímo v aplikaci) z MS SQL na MySQL při zachování veškeré funkčnosti.
Je to naceněné a odsouhlasené na 20 dní práce.
SQL jazyk je sice teoreticky stejný, ale rozhodují právě ty drobné rozdíly v názvech a parametrech funkcí, v default vstupních a výstupních hodnotách (třeba CONVERT(datetime,@date,104) mi MySQL opravdu neskousne) - bude to potřeba celé projít otestovat a upravit.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Wangarad 06. 11. 2020, 14:46:04
KIT dakujem za nasmerovanie - nenapadlo ma to riesit rovno tak ako si pisal. Chcel som zmenit format tabulky aby som si usetril opravy kade tade po selectoch. Nakoniec som to poriesil tak ze jednoducho odseknem co je za bodkov po selecte a hotovo ale asi to spravim ako pises.

Tomas-T presne to tie kvazy "male" veci zeru neskutocne vela casu. Napisane to bolo v mysql preklopuje sa to na sql takze to zere cas. Bohuzial :/


Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Ondrej Nemecek 06. 11. 2020, 16:24:22
V PHP doporučuju použít PDO, pak může být PHP kód stejný pro všechny databáze. SQL dotazy se budou muset mírně upravit dle databáze, pomůže pokud jsou všechny SQL konzistentně na jednom místě.
Název: Re:PHP MySQL vs MSSQL
Přispěvatel: Kit 06. 11. 2020, 16:51:31
Také doporučuji PDO, protože je mnohem jednodušší na používání. Metody jsou pro všechny databáze stejné, ale chovají se různě - např. metoda quote() escapuje string v MySQL jinak než v PostgreSQL. Ovšem kdo by ji používal, když PDO má jednoduše použitelné prepared statements?