/** * 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 }
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()); }