Задаване на типа на колоните от базаданни ???

dj_vansa

Registered
Здравейте, имам интересен проблем, правя си системка, която да е колкото си може по-абстрактна. И се сблъсках с доста сериозен пробелм. Имам си таблица в базата и в нея имам полета които са и текствови (varchar, text) и такива който са int. Предавам полетата на масив, и после работя с него, но проблема идва когато се опитвам да сложа информация в полетата който са Int. В масива където държа имената на полетата всички са стрингове. Въпроса са ми е как да направя така че полетата отново да могат да се генерират динамично, според това кой клас и коя таблица ги извиква, но да си запазят типа. Говоря за PHP кода е доста дълъг за това няма да го поствам тука, ако има някакви идей как може да се реализира това ще ви бъда много благодарен :)
 
Това не помага, пак всичко в масива ми е стрингове и не мога да въведа в базата Int.
Код:
 public function insert(){
      global $database;

        $sql = "INSERT INTO " . $this->table. " ("; //$this->tableтова се въвежда в класа който извиква 
//метода
        $sql .= implode(", ", array_values($this->db_fellds)); //$this->db_fellds тук трябва да са ми колоните 
//от базата данни работи
        $sql .= ") VALUES (' ";

        $sql .= implode("', '", array_values($this->db_fellds)); //тук идва проблема защото всичко е стринг 
        $sql .= "')";

      $database->query($sql);
      return ($database->affected_rows()==1) ? true : false;
    }
 
Точно преди да почнеш да вкарваш данни пробвай следното:
PHP:
for each( $this->db_fellds as $promenliva){
if(is_int($promenliva)){
$promenliva=intval($promenliva);
}
}
Идеята е да направиш проверка дали е само числа или има и символи. Ако е само числа ще го направиш от стринг - интегер :)
 
Извинявам се времето което загубихте, проблема не беше в масивите където държа данните а във валидацията, бях забравил да прибавя валидиращите методи, което ми омазваше кода. Като го завърша ще пусна цял урок, или по-скоро ще публикувам кода с много обяснения и коментари... Благодаря на Иво за отделеното време
 

Back
Горе