CodeLobster IDE http://codelobster.com/forum/ |
|
need help with pdo http://codelobster.com/forum/viewtopic.php?f=3&t=25222 |
Page 1 of 1 |
Author: | 12Strings [ Sat Mar 04, 2023 8:53 pm ] |
Post subject: | need help with pdo |
Quote: Hi, my first attempt at pdo, will someone tell me where I went astray? Code: <?php $host = '127.0.0.1'; $db = 'homedb'; $user = 'root'; $pass = ''; $charset = 'utf8mb4'; $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { $pdo = new PDO($dsn, $user, $pass, $options); } catch (\PDOException $e) { throw new \PDOException($e->getMessage(), (int)$e->getCode()); } echo "<center>";echo date('m/d/y');echo "</center>"; $tenant=$_POST['tenant']; $unit=$_POST['unit']; $amtpaid=$_POST['amtpaid']; $hudpay=$_POST['hudpay']; $datepaid=$_POST['datepaid']; $amtpaid='amtpaid'; $amtdue='amtdue'; $hudpay='hudpay'; $prevbal='prevbal'; $latechg='latechg'; $datepaid='datepaid'; $stmt = $pdo->query('SELECT tenant, unit, amtpaid, amtdue, hudpay, prevbal, latechg, datepaid FROM paytbl'); while ($row = $stmt->fetch()) { echo $row['tenant'] . " "; } /* if no pay or part pay, add $35 to latechg field and amount not paid to prevbal field */ if ($amtpaid < $amtdue) { $latechg = $latechg + "35.00"; $prevbal = $amtdue - $amtpaid; } /* if payment = amtdue */ elseif ($amtpaid == $amtdue) { $prevbal = $prevbal - $prevbal; $latechg = $latechg - $latechg; } /* *****************************unexpected ';'******************************* // if over-payment subtract over-payment from prevbal else ($amtpaid > $amtdue ) { $prevbal = $amtpaid - $amtdue; $latechg = $latechg - $latechg; } ****************************************************************************** */ /* Perform a query, check for error */ $sql = "UPDATE paytbl SET amtpaid=?, prevbal=?, latechg=?, datepaid=? WHERE unit=?"; prepared_query($conn, $sql, [$amtpaid, $prevbal, $latechg, $datepaid, $unit]); // $pdo->prepare($sql)->execute([$name, $id]); ?> Quote: the resut:
PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { $pdo = new PDO($dsn, $user, $pass, $options); } catch (\PDOException $e) { throw new \PDOException($e->getMessage(), (int)$e->getCode()); } echo " ";echo date('m/d/y');echo " "; $tenant=$_POST['tenant']; $unit=$_POST['unit']; $amtpaid=$_POST['amtpaid']; $hudpay=$_POST['hudpay']; $datepaid=$_POST['datepaid']; $amtpaid='amtpaid'; $amtdue='amtdue'; $hudpay='hudpay'; $prevbal='prevbal'; $latechg='latechg'; $datepaid='datepaid'; $stmt = $pdo->query('SELECT tenant, unit, amtpaid, amtdue, hudpay, prevbal, latechg, datepaid FROM paytbl'); while ($row = $stmt->fetch()) { echo $row['tenant'] . " "; } /* if no pay or part pay, add $35 to latechg field and amount not paid to prevbal field */ if ($amtpaid < $amtdue) { $latechg = $latechg + "35.00"; $prevbal = $amtdue - $amtpaid; } /* if payment = amtdue */ elseif ($amtpaid == $amtdue) { $prevbal = $prevbal - $prevbal; $latechg = $latechg - $latechg; } /* *****************************unexpected ';'******************************* // if over-payment subtract over-payment from prevbal else ($amtpaid > $amtdue ) { $prevbal = $amtpaid - $amtdue; $latechg = $latechg - $latechg; } ****************************************************************************** */ /* Perform a query, check for error */ $sql = "UPDATE paytbl SET amtpaid=?, prevbal=?, latechg=?, datepaid=? WHERE unit=?"; prepared_query($conn, $sql, [$amtpaid, $prevbal, $latechg, $datepaid, $unit]); // $pdo->prepare($sql)->execute([$name, $id]); ?> |
Author: | Admin [ Mon Mar 06, 2023 7:16 am ] |
Post subject: | Re: need help with pdo |
Hi. Could You, please, clarify the problem? We see couple of potential problems: 1) Database connection looks OK 2) Code: { $latechg = $latechg + "35.00"; $prevbal = $amtdue - $amtpaid; } If they are values from database then You should set in at first: Code: $stmt = $pdo->query('SELECT tenant, unit, amtpaid, amtdue, hudpay, prevbal, latechg, datepaid FROM paytbl'); while ($row = $stmt->fetch()) { echo $row['tenant'] . " "; $latechg = $row['latechg']; ..... } 3) Undefined function Code: prepared_query($conn, $sql, [$amtpaid, $prevbal, $latechg, $datepaid, $unit]); Ths syntax is more suitable for "update query" Code: $pdo->prepare($sql)->execute([$amtpaid, $prevbal, $latechg, $datepaid, $unit]); Regards, Codelobster Team. |
Page 1 of 1 | All times are UTC |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |