NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Místní wrapper

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
michal Čepelák:18.9.2017 14:56

Zdravím,
potřeboval bych poradit
použivám místní wrapper od David Čapka a při ukladání do databáze mi to napiše chybu
"Warning: PDOStatement::e­xecute(): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'oprcenahw' cannot be null in /var/www/html­/opravy_desek/Db­.php on line 62"
v databázi na řádku oprcenahw mám nastavený výchozí (dle zadaní :0) protože cena se pokaždé nezadává a potřebujui pokud se nezada tak aby vypsala vychozí hodnotu 0.
Podle té hlášky je řádek 62 v Db.php toto

$statement->execute($params);

celá funkce vypada takle

private static function executeStatement($params)
        {
                $query = array_shift($params);
                $statement = self::$connection->prepare($query);
                $statement->execute($params);
                return $statement;
        }

V PDO jsem začátečník poradíte někdo jak to upravit aby to nepsalo tu chybovou hlášku. Podle mě je to i důvod proč mi to nedovolí uložit formulář do databáze pokud nevyplním hodnotu do pole opcenahw.
Děkuji za radu

 
Odpovědět
18.9.2017 14:56
Avatar
Odpovídá na michal Čepelák
Petr Štechmüller:18.9.2017 15:01

Ahoj, tak zruš v databázi podmínku, že sloupeček 'oprcenahw' nesmí být null a v PHPku checkni, jestli je ta hodnota null, pokud ano, dosaď za ní 0, jinak pravou hodnotu.

$_POST["oprcenahw"] == null ? 0 : $_POST["oprcenahw"]
Nahoru Odpovědět
18.9.2017 15:01
Pokud spolu kód a komentář nekorespondují, budou patrně oba chybné
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá na michal Čepelák
Jan Lupčík:18.9.2017 18:38

Ano, nevyplňuješ hodnotu a nejspíš odesíláš null na sloupeček, kde máš nastaveno NOT NULL. Takže se podívej, co tam odesíláš za data, nebo nastav sloupečku oprcenahw výchozí hodnotu null.

Nahoru Odpovědět
18.9.2017 18:38
TruckersMP vývojář
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na michal Čepelák
David Hartinger:18.9.2017 20:05

To není věc PDO, ale změny v nové MySQL. Jak již bylo řečeno, nastav v adminovi sloupeček jako null nebo při vkládání nových řádků specifikuj všechny sloupečky.

Nahoru Odpovědět
18.9.2017 20:05
New kid back on the block with a R.I.P
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.