Fatal Error ve třídě PDO Vyřešeno

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

myiyk
nováček
Příspěvky: 28
Registrován: leden 11
Pohlaví: Muž
Stav:
Offline
Kontakt:

Fatal Error ve třídě PDO

Příspěvekod myiyk » 28 zář 2011 00:11

Ahoj, tenhle kód mi hází chybu
Fatal error: Cannot pass parameter 2 by reference
na současném řádku 6

Kód: Vybrat vše

$sql='INSERT INTO building_stavebni_list
VALUES ( :stv_id , :stv_lvl , :stv_nlvl , :st_time , :en_time )';
$sth = $system_db->prepare($sql);
$sth->bindParam(1, $row['ID'], PDO::PARAM_INT, 11);
$sth->bindParam(2, $row['lvl'], PDO::PARAM_INT, 10);
$sth->bindParam(3, ((int)$row['lvl']+1), PDO::PARAM_INT, 11); // problémový řádek
$sth->bindParam(4, mktime(), PDO::PARAM_INT, 11);
$sth->bindParam(5, mktime()+$row['time'], PDO::PARAM_INT, 11);
$sth->execute();

/* pro info
$row = array(4) { ["ID"]=> string(1) "1" ["lvl"]=> string(1) "2" ["time"]=> string(3) "180" ["gol"]=> string(2) "75" }
*/


Netušíte, co tam je špatně ?

Reklama
Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Fatal Error ve třídě PDO

Příspěvekod CZechBoY » 28 zář 2011 01:04

zkus tento kod píše:$sql='INSERT INTO building_stavebni_list
VALUES ( :stv_id , :stv_lvl , :stv_nlvl , :st_time , :en_time )';
$sth = $system_db->prepare($sql);
$sth->bindParam(":stv_id", $row['ID'], PDO::PARAM_INT, 11);
$sth->bindParam(":stv_lvl", $row['lvl'], PDO::PARAM_INT, 10);
$sth->bindParam(":stv_nlvl", ((int)$row['lvl']+1), PDO::PARAM_INT, 11); // problémový řádek
$sth->bindParam(":st_time", mktime(), PDO::PARAM_INT, 11);
$sth->bindParam(":en_time", mktime()+$row['time'], PDO::PARAM_INT, 11);
$sth->execute();

/* pro info
$row = array(4) { ["ID"]=> string(1) "1" ["lvl"]=> string(1) "2" ["time"]=> string(3) "180" ["gol"]=> string(2) "75" }
*/
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

myiyk
nováček
Příspěvky: 28
Registrován: leden 11
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Fatal Error ve třídě PDO  Vyřešeno

Příspěvekod myiyk » 28 zář 2011 09:39

stejně to nefunguje

--- Doplnění předchozího příspěvku (28 Zář 2011 10:45) ---

Vyřešil jsem to, vyměnil jsem bindParam za bindValue a trochu upravil sql, ale přesto netuším v čem byla chyba.
Aktuální funkčí kód:

Kód: Vybrat vše

$sql='INSERT INTO building_stavebni_list (building_id, this_level, next_level, start_time, end_time)
VALUES ( :stv_id , :stv_lvl , :stv_nlvl , :st_time , :en_time )';
$sth = $system_db->prepare($sql);
$sth->bindValue(":stv_id", $row['ID'], PDO::PARAM_INT);
$sth->bindValue(":stv_lvl", $row['lvl'], PDO::PARAM_INT);
$sth->bindValue(":stv_nlvl", $row['lvl']+1, PDO::PARAM_INT); // už funkční řádek
$sth->bindValue(":st_time", mktime(), PDO::PARAM_INT);
$sth->bindValue(":en_time", mktime()+$row['time'], PDO::PARAM_INT);
$sth->execute();


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů