Programare

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Messages
5,256
Daaaa, limbajul unde nu stii niciodata daca "+" face adunare sau concatenare.
Si inca in combinatie cu Node...
Tii minte ca io sunt ala care si-a facut numarator de celule fara sa import nimic altceva decat adresele registrilor, da?
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Messages
5,256
Cica PDO cu sqlite n-are acelasi bug. Nu-i nimic, am dat peste altul:
Code:
<?php
$DB=new PDO('sqlite:test.sqlite');
$DB->exec('CREATE TABLE test (ID INTEGER NOT NULL PRIMARY KEY, OtherID INTEGER NULL UNIQUE);'); // A se observa "UNIQUE" de aici.
$DB->exec('BEGIN;');
var_dump($DB->errorInfo());?><br><?php
$STATEMENT=$DB->prepare('INSERT INTO test (OtherID) VALUES (?) RETURNING ID,OtherID');
var_dump($DB->errorInfo());?><br><?php
$data=array(1234);
$STATEMENT->bindParam(1,$data[0]);
var_dump($DB->errorInfo());?><br><?php
$RESULT=$STATEMENT->execute();
var_dump($DB->errorInfo(),$RESULT);?><br><?php
$ROW=$STATEMENT->fetchAll(PDO::FETCH_ASSOC);
var_dump($DB->errorInfo(),$ROW);?><br><?php
$DB->exec('COMMIT;');
var_dump($DB->errorInfo());?><br><?php
?>
Prima rulare:
Code:
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL } bool(true)
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL } array(1) {  [0]=>  array(2) {    ["ID"]=>    string(1) "1"    ["OtherID"]=>    string(4) "1234"  } }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
A doua rulare:
Code:
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL } bool(false)
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL } array(0) { }
array(3) {  [0]=>  string(5) "00000"  [1]=>  NULL  [2]=>  NULL }
N-ar trebui sa vad si o eroare inainte de bool(false), ceva legat de UNIQUE?
 

Marius '95

Membru Senior
Sugar daddy
Joined
Nov 13, 2005
Messages
5,256
Asa, si unde e eroarea? Nu-i pe ecran, nu-i in errorInfo, nu-i in log... unde e?

Ah, crap, stai ca m-am prins. Default e sa le ascunda. :facepalm:
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Messages
8,583
Ar trebui să fie și în errorInfo, dar nu în $DB->errorInfo() ci în $STATEMENT->errorInfo() și restul.
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
8,176
Nu mai fac alt topic doar pentru asta. Ciudatenie maxima in PHP: am o mica aplicatie in PHP sub IIS in Windows 2022 (face la fel si pe Win 10 sau 2019) care are cateva pagini simple, pagina de start afiseaza linkuri catre celelalte iar restul, cu o exceptie, afiseaza cate un tabel cu cateva linii (sau zeci de linii) si cateva coloane. Una din pagini are tabelul si un buton care face un apel AJAX la server si acolo executa niste chestii in SQL care dureaza peste 30 de secunde.

Dubiosenia e ca daca pagina cu AJAX-ul initiaza executia aia, celelalte pagini nu se mai incarca deloc si dau timeout dupa 30 de secunde. Linia care da eroarea e un require care incarca headerul comun al paginilor, fisier separat cu cateva linii de HTML. Nu are nici o logica ca scriptul server-side care ruleaza cateva minute sa blocheze un require care incarca un fisier chior ce nu are nici o legatura cu restul. Inaintea acelui require e doar un session_start, dupa el sunt diverse alte chestii care difera de la o pagina la alta, dar toate paginile au acelasi comportament. Cand executia e terminata, totul revine la normal. Pagina de start nici macar nu se conecteaza vreodata la SQL, e doar HTML, cu require pentru header.

Si a doua chestie de care abia am dat aseara: am mutat aplicatia de pe un server 2019 pe un 2022 ca sa vad cum merge IIS cu HTTP/2 si TLS 1.3. Desi php.ini are CGI impersonate = 1 si pe ambele recunoaste user name, executia scriptului apelat prin AJAX pe 2019 e facuta pe contul utilizatorului, pe 2022 e pe contul sistem. Chiar am verificat toate setarile, PHP si web.config chiar sunt copiate de pe un computer pe altul. PHP 8.1 de luna asta.
 

miahi

Wizzard
Sugar daddy
Joined
Aug 1, 2004
Messages
8,583
La prima e posibil să fii limitat de undeva de numărul de procese/threads paralele care rulează php. Pentru că sunt dubioșenii ca asta sau ca asta (mai ales chestia cu session start) care fac php-ul single threaded. Posibil să nu fi observat până acum pentru că restul paginilor se randează repede...

Cu impersonation au mai fost și bug-uri/setări noi necesare în OS users cu versiuni noi de IIS/Windows, poate să fie de la aia.
 

AdrianB1

Membru Senior
Sugar daddy
Joined
Aug 3, 2004
Messages
8,176
Da, fix asta pare sa fie. Dupa ce ii dau de cap cu impersonarea o sa testez ceva workaround pentru prima problema: renunt la sesiune complet, o foloseam doar pentru a tine o variabila in ea care e banal de calculat la deschiderea fiecarei pagini.
 
Last edited:
Top Bottom