PHP PDO - nejde provést update v MySQL

0 odpovědí
29.12.2017 napsal PDO dotaz do kategorie programovani 16 / 14

PHP PDO - nejde provést update v MySQL

Nevyřešeno

programovani php oop mysql pdo databaze

Ahoj, snažím se v PHP přes PDO provést update záznamu v databázi MySQL a PHP konstrukce dole mi furt vrací Počet upravených záznamů 0. Spojení PDO je ok, protože před tímto kódem data vypisuji a proměnné $sraz, $odjezd, $cid jsou v pořádku předány = echo je vypíše.


echo $sraz . " " . $odjezd . " " . $cid;

// dotaz
$dotaz3 = $pdo->prepare("UPDATE imp_edit SET sraz = ?, odjezd = ? WHERE cid = ?");
          
$dotaz3->execute(array(
                                  $sraz,
                                  $odjezd,
                                  $cid
                             ));

$dotaz3->debugDumpParams();

echo "
Počet upravených záznamů " . $dotaz3->rowCount() . "
";
A výstup mám tento:
Notice: Undefined index: e in /var/www/html/php/imp/tab-edit.php on line 39 1400 1900 U4556\SQL: [54] UPDATE imp_edit SET sraz = ?, odjezd = ? WHERE cid = ? Params: 3 Key: Position #0: paramno=0 name=[0] "" is_param=1 param_type=2 Key: Position #1: paramno=1 name=[0] "" is_param=1 param_type=2 Key: Position #2: paramno=2 name=[0] "" is_param=1 param_type=2 Počet upravených záznamů 0
Když zkusím přes PDO update nabindovat proměnné, tak to neprojde:

$cid    = '2345';
$sraz   = '1100';
$odjezd = '1200';

$dotaz3 = $pdo->prepare("UPDATE imp_edit SET sraz = :sraz, odjezd = :odjezd WHERE cid = :cid");

$dotaz3->bindValue(':sraz', $sraz, PDO::PARAM_STR);
$dotaz3->bindValue(':odjezd', $odjezd, PDO::PARAM_STR);
$dotaz3->bindValue(':cid', "$cid", PDO::PARAM_STR);
$dotaz3->execute();
....
Počet upravených záznamů 0
ale když tam dám přímo hodnoty, tak se update provede! Opravdu to nechápu

$dotaz3 = $pdo->prepare("UPDATE imp_edit SET sraz = :sraz, odjezd = :odjezd WHERE cid = :cid");

$dotaz3->bindValue(':sraz', '1100', PDO::PARAM_STR);
$dotaz3->bindValue(':odjezd', '1200', PDO::PARAM_STR);
$dotaz3->bindValue(':cid', '2345', PDO::PARAM_STR);
$dotaz3->execute();
.....
Počet upravených záznamů 1

Odpověď:

Odpovídáte na: Ahoj, snažím se v PHP přes PDO provést update záznamu v databázi MySQL a PHP konstrukce dole mi furt vrací Počet upravených záznamů 0. Spojení PDO…

Poradna je cílená na Linux, programování a databáze, velmi okrajově sítě a win.

Nepatří sem dotazy na HW, tiskárny, skenery atd., nekonkrétní dotazy jsou ZAMÍTÁNY, odstraňují se HTTP linky, veřejné IP a emaily. Systém automaticky zamítá duplicitní dotazy.

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace