Pentru că sunt unii utilizatori care au dificultăți în a rezolva o problemă simplă, m-am gândit să ofer un ghid pas cu pas despre cum ai putea găsi soluții atunci când codul nu merge.
####1. Înțelege problema
Pentru a înțelege problema, trebuie să știi care ar trebui să fie rezultatul codului și, foarte important, să înțelegi fiecare cuvânt cheie, fiecare apelare, fiecare linie de cod. Nu înțelegi? Fuga în manualul limbajului, vezi ce zice acolo.
Nu înțelegi arrays? Citești puțin despre arrays simple, asociative și multidimensionale. Nu înțelegi loop-urile? Cauți concepte despre loop-uri. Nu înțelegi recursivitatea? Citești paragraful ăsta de la început. Șamd.
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
(de aici)
Care crezi că ar putea fi cauzele unei astfel de erori?
- O eroare în sintaxă
- Un bug în sistemul de operare
- Un bug în limbaj (sql, în cazul de față).
Nu excludem ultimele două variante, dar, dacă citești acest ghid, aș putea băga mâna în foc că nu ai acele probleme.
Deci presupunem, pentru moment, că ai o problemă în sintaxă
####2. Căutare binară (sau divide et impera)
De exemplu, ai o aplicație cu plugin-uri (WordPress, de exemplu), iar după ce ai făcut update la 14 plugin-uri, site-ul nu mai merge. Cum procedezi?
- Dezactivezi jumătate din plugin-uri!
- Problema există? Le activezi la loc, le dezactivezi pe celelalte;
- Problema s-a rezolvat? Activezi jumătate din ele.
- Repeți pașii 1-3 până identifici problema.
Cum aplici treaba asta la cod? Citești codul, îl înțelegi, după care tai jumătate din cod!
Un exemplu aleator: Parse error: syntax error, unexpected end of file
. Dacă ai mai mult de o oră în lumea PHP, cel mai probabil îți dai seama că problema apare atunci când nu ai închis ceva.
foreach($array as $value)
{
if(preg_match('/(\d+)/', $value))
{
echo array($value);
}
Presupunând că ai foarte multe linii între acoladele foreach
, ștergi tot și verifici: problema mai există? Dacă da, ai toate acoladele la locul lor? Nu mai e nici o eroare? Adaugi primul bloc. Verifici, mai adaugi un bloc, iar verifici, etc.
####3. Căutare pe Google
După ce ai încercat variantele de mai sus și nu ai reușit, încerci să cauți pe google. Ce cauți? Fix eroarea! Nu găsești nimic relevant? Cauți ce vrei să faci.
Revenind la prima eroare, cea cu sql, unde crezi că e eroarea? În codul sql sau în PDO? Judecând după eroare, aș zice că e o problemă de sql. Prin urmare, cauți cum se face un update.
Evident că nu vei găsi un cod fix pentru tine, ci vei găsi cum se face un update. Aplicând regula 2 de mai sus, te apuci să scrii minimum necesar pentru query-ul tău. Apoi adaugi încă o coloană (sau o clauză). Și încă una. Și încă una.
####4. Postare pe forum(uri)
După ce primele trei variante au eșuat poți posta pe DevForum. Sau stackoverflow. Sau orice altă comunitate care te-ar putea ajuta.