/**
  * Populates values in a prepared statement.
  *
  * @param PreparedStatement $stmt
  * @param array $params array('column' => ..., 'table' => ..., 'value' => ...)
  * @param DatabaseMap $dbMap
  * @return int The number of params replaced.
  */
 private static function populateStmtValues($stmt, $params, DatabaseMap $dbMap)
 {
     $i = 1;
     foreach ($params as $param) {
         $tableName = $param['table'];
         $columnName = $param['column'];
         $value = $param['value'];
         if ($value === null) {
             $stmt->setNull($i++);
         } else {
             $cMap = $dbMap->getTable($tableName)->getColumn($columnName);
             $setter = 'set' . CreoleTypes::getAffix($cMap->getCreoleType());
             $stmt->{$setter}($i++, $value);
         }
     }
     // foreach
 }
Example #2
0
 public function update($id, $code, $brand_id, $category_id, $price_fonds, $price_sell, $description, $pics, $seo_url)
 {
     $sql = 'UPDATE products SET ' . 'code=?, brand_id=?, category_id=?, price_fonds=?, price_sell=?, description=?, pics=?, seo_url=? ' . 'WHERE id=?';
     $ps = new PreparedStatement($sql);
     $ps->setString(1, $this->ds->escape($code));
     if (!isset($brand_id) || $brand_id <= 0) {
         $ps->setNull(2);
     } else {
         $ps->setInt(2, $brand_id);
     }
     if (!isset($category_id) || $category_id <= 0) {
         $ps->setNull(3);
     } else {
         $ps->setInt(3, $category_id);
     }
     $ps->setInt(4, $price_fonds);
     $ps->setInt(5, $price_sell);
     if (!isset($description) || strlen($description) == 0) {
         $ps->setNull(6);
     } else {
         $ps->setString(6, $this->ds->escape($description));
     }
     if (!isset($pics) || strlen($pics) == 0) {
         $ps->setNull(7);
     } else {
         $ps->setString(7, $this->ds->escape($pics));
     }
     $ps->setString(8, $seo_url);
     $ps->setInt(9, $id);
     return $this->ds->execute($ps->getSql());
 }
 public function updateCity($old_city_id, $new_city_id)
 {
     $sql = 'UPDATE customers SET city_id = ? WHERE city_id = ?';
     $ps = new PreparedStatement($sql);
     if ($new_city_id == 'NULL') {
         $ps->setNull(1);
     } else {
         $ps->setInt(1, $new_city_id);
     }
     $ps->setInt(2, $old_city_id);
     $this->ds->execute($ps->getSql());
 }