Hostinger: pdo probléma. Én hibázok?
Bevallom, a PDO terén kezdő vagyok. Localhoston remekül működik amit megírtam, viszont a hostingernél nem akar (pedig támogatják a pdo-t).
Az adatbázis kapcsolattal nincs probléma, egy lekérés szépen lefut query-vel.
Az insert-nél prepare-t használok, viszont itt kezdődnek a gondok. Először az execute()-ra "panaszkodott" (nem, igazából nem panaszkodott, gógülből tudtam meg, hogy az üres képernyő és http 500-as hiba az arra utal, hogy nincs execute függvény) így a zárójeleket eltávolítva a hiba megszűnt. (Bár azt nem tudom működőképes lesz-e.)
Viszont ha a $bejegyez->bindParam(':lid', $lid); sorokat nem kommentelem ki, továbbra is hozza a hibát. Semmilyen error-t nem kapok (error_reporting(E_ALL);)! Szimplán a lekérés alatti részek nem töltenek be..
Hol hibázok? XAMPP-on remekül megy, hiba nélkül minden...
(hostinger:pdo_mysql Client API version 10.0.11-MariaDB)
(localhost:pdo_mysql Client API version mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $)
Van rá jó megoldás, ami nem jelent sok plusz munkát? (Itt szerintem csak ideiglenesen lesz az oldal, tehát lehet a végleges helyen megszűnik majd a probléma.) Vagy én követtem el valami fatális hibát?
A segítségeket előre is köszönöm! :)
$bejegyez = $sqlkapcsolat->prepare('INSERT INTO `ugyfelszolgalat_naplo` (`lid`, `uid`, `ido`) VALUES (:lid, :uid, :ido)');
$bejegyez->bindParam(':lid', $lid);
$bejegyez->bindParam(':uid', $uid);
$bejegyez->bindParam(':ido', $ido);
$bejegyez->execute();
Természetesen kapnak értéket a változók.
Szóval a kérdésem pontosabban: miért kapok 500-as hibát?
Ez pedig az, ami hiba nélkül működik:
//Létezik-e a rekord
function letezike($sqlkapcsolat, $tabla, $mezo, $ertek)
{
$sorok = $sqlkapcsolat->query("SELECT `".$mezo."` FROM `".$tabla."` WHERE `".$mezo."` = '".$ertek."' LIMIT 1");
return $sorok->rowCount();
}
létrehoztam egy php file-t ezzel a tartalommal (tehát semmi sem zavarhat bele) és továbbra sem működik.
$lid = 1; $uid = 2; $ido = 3;
include_once("beallitasok.php");
try {
$sqlkapcsolat = new PDO("mysql:host=".SQLHOST.";dbname=".SQLDB, SQLUSER, SQLPASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sqlkapcsolat->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo $e->getMessage();
}
$bejegyez = $sqlkapcsolat->prepare('INSERT INTO `ugyfelszolgalat_naplo` (`lid`, `uid`, `ido`) VALUES (:lid, :uid, :ido)');
$bejegyez->bindParam(':lid', $lid);
$bejegyez->bindParam(':uid', $uid);
$bejegyez->bindParam(':ido', $ido);
$bejegyez->execute();
Ezt kapja a böngésző:
Remote Address:31.170.164.109:80
Request URL: [link]
Request Method:GET
Status Code:500 Internal Server Error
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:hu-HU,hu;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:PHPSESSID=84ba78998563a37239d277e5fd078065
Host:oic.esy.es
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36
Response Headersview source
Connection:keep-alive
Content-Length:0
Content-Type:text/html
Date:Wed, 04 Jun 2014 13:39:49 GMT
Server:nginx
X-Powered-By:PHP/5.3.28
Ne privátba!
Az SQLHOST az localhosstal egyenlő?
SQLHOST-nak ez az értéke: mysql.hostinger.hu
A kapcsolat egyébként jó. Sima query-vel működik. Én azt vettem észre, hogy magával az execute() függvénnyel van baja. Az érdekesség, hogy neten utánaolvasva ilyen hibát akkor produkál ha valaki a pdo-tól kéri az execute() függvényt és nem a PDOStatement osztálytól. Ami érthető is lenne... Viszont ez a típushiba nálam nem áll fent, ezért nem is értem mi okozhatja a gondot. Lehet tényleg valami triviális dolog, de egyszerűen nem látom.
Le van tiltva az execute ennél a s**r szolgáltatónál, mivel keverik a PHP exec() függvényével. Magas szakértelem! Úgyhogy nem a kódodban van a hiba, keress másik szolgáltatót.
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!