Prefix table problem

1

Prefix table problem

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

Pozdrav,

nekoliko ključnih tabela imaju prefix sa underscore npr., _tamo_nesto.

U jednu od tih tabela dodao sam polje za ubacivanje nekog rekorda.

Problem je što neće da mi unese zapis , dok u sve druge tabele bez underscore najnormanlije vršim unos kroz formu.

Ima li neka caka za ovakve tabele?

Koristim najobičniji query npr.
$query=mysql_query("INSERT INTO _content_grad (wishlist) VALUES('$_POST[wishlist]')");
Hvala unapred.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Napisano: 21 Jul 2013 23:15

Koji je tebi prefix ? Ja ga nevidim u upitu? Zasto nisi nisi pravilno formatirao query. Aj dodaj mysql_real_escape($_POST['blabla']);

Nisam te bas tacno razumeo u cemu je problem.

Dopuna: 21 Jul 2013 23:17

Aham tebi je prefix UND (_).

Dopuna: 21 Jul 2013 23:24

Ajde probaj da odvojis  $prefix = '_blabla'; i u query doday $prefix.table



offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

Da, prefix je underscore(ako to možemo zvati prefix) tabela se zove _content_grad

i kao što vidiš gore u mom query-ju , stavio sam _content_grad.

tridesetak tabela nemaju underscore ispred i one nisu problem ali nekoliko ključnih imaju ovo.

mysql_real_escape ne vrši posao ovde ,a koliko znam , stavlja se zbog security, a on je deprecated u PHP6.

Nisam te razumeo gde da stavim prefix.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Probaj
$query=mysql_query("INSERT INTO `_content_grad` (wishlist) VALUES('" . addslashes($_POST[wishlist]) . "')");

Obrati paznju na ` oko imena tabele Wink

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

Rastafarii ::Probaj
$query=mysql_query("INSERT INTO `_content_grad` (wishlist) VALUES('" . addslashes($_POST[wishlist]) . "')");

Obrati paznju na ` oko imena tabele Wink


Kad primenim ovakav query, dobijem undefined wishlist

Notice: Use of undefined constant wishlist - assumed 'wishlist' in C:\wamp\www\balkanrent_test\zelja.php on line 46

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Napisano: 22 Jul 2013 12:57

@gfactory nemoguce evo ja sam malopre napravio nekoliko tabela sa _prefix i ubacio kolone testirao oba koda i rade...

Da ti mozda nekoristis mysqli?

Dopuna: 22 Jul 2013 13:00

Cek cek, sta pokusavas ti da uneses u tabelu? Kojeg je tipa tabela? Date, Varchar, INT ? Ako je Date a pokusavas string da ubacis moras da konvertujes input data

Dopuna: 22 Jul 2013 13:05

Da li ti je Mgic QUotes ukljucen? http://php.net/manual/en/security.magicquotes.php
Ako je ukljucen stavi na OFF.
; Magic quotes ; ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. magic_quotes_runtime = Off ; Use Sybase-style magic quotes (escape ' with '' instead of \'). magic_quotes_sybase = Off
Ili ga iskljuci direktno u kodu

if (get_magic_quotes_gpc()) {     $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);     while (list($key, $val) = each($process))     {         foreach ($val as $k => $v)         {             unset($process[$key][$k]);             if (is_array($v))             {                 $process[$key][stripslashes($k)] = $v;                 $process[] = &$process[$key][stripslashes($k)];             }             else             {                 $process[$key][stripslashes($k)] = stripslashes($v);             }         }     }     unset($process); }
Ja vise stvarno neznam kako i sta drugo moze da te zeza..

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

Napisano: 22 Jul 2013 13:05

_iKaC,

ja inače koristim mysql na wampu, e sad, ovo je izgleda zend framefork, npr čitanja iz baze su na ovaj fazon

$oglasiCollection = new Collection("_content_oglas");       $oglasi = $oglasiCollection->getCollection("WHERE status = 1 AND lang = '$currentLanguage' AND resource_id = '$resource_id'");    $oglas = $oglasi[0];    if ($oglas->id == "" ) $f->redirect("/");        $deloviGradaColl = new Collection("_content_deo_grada");    $deloviGrada = $deloviGradaColl->getCollection("WHERE status = '1' AND lang='$currentLanguage' AND resource_id = '$oglas->deo_grada'");    $deoGrada = $deloviGrada[0];

On koristi SQL/ PDO MySQL(valjda) ali i pored toga, ne bi trebalo da bude problema , dodao sam jedno polje na tabelu i kroz formu prosleđujem unos, nikakva filozofija, ali neće da unese sa UND ispred imena tabele. Bez UND unosi odmah.

Ako ti nije problem , okači ovde query i tu tabelu što si probao da probam i ja, hvala drugar.

Dopuna: 22 Jul 2013 13:06

pokušavan da unesem samo rekorde za jedno polje koje sam dodao , varchar 250 chars, to je sve

Dopuna: 22 Jul 2013 13:10

magis mi je po defaultu zakomentovan

; magic_quotes_gpc ;   Default Value: On ;   Development Value: Off ;   Production Value: Off

offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Napisano: 22 Jul 2013 13:19

Pa sto nas cimas covek Very Happy sto nerece da je to ZFW
Aj u test file zvekni
echo Zend_Version::VERSION;

I kopiraj mi u postu bootstrap.php i config.ini

Note: sakrij samo db user i pass nemora svako da zna sta si stavljao.

Dopuna: 22 Jul 2013 13:20

Cak sto vise nemora da znaci da je ZFW jer sada u svojim najobicnijim applikacijama mozes da izmiksujes 10 razlicitih biblioteka pomocu composera. Mozda je samo uzet deo od ZF

Dopuna: 22 Jul 2013 13:43

Da i jos nesto daj mi Model koji upisuje to u bazu celokupni kod modela i kontrolera mozda je tu negde greska u $this->data

offline
  • Pridružio: 25 Jan 2004
  • Poruke: 2784
  • Gde živiš: Niš

A šta ti je wishlist i zašto je to konstanta?

offline
  • PHP programer
  • Pridružio: 26 Okt 2007
  • Poruke: 1064
  • Gde živiš: u Apache

@_iKaC,

izvini druže, mogao sam odmah reći smešak .... jeste , ovo je bar delimično zend ili deo biblioteke ,

ovaj test fajl nisam vezao sa sajtom, probao sam sa posebne stranice da prosledim unos kroz formu, samo sam konektovao bazu mysql_connect i mysql_select_db....

Zato ne znam gde da mu lupim echo zend da bi video verziju.

Ovo čudo nema bootstrap.php a config.php evo ga... view ima a model i kontroler nemam pojma gde su mu kao što je razvrstano u CAKEPHP i Code Igniter-u
<?php        //Krenula sesija    session_start();        include ("mysql.php");         //Putanja za aplikaciju    define("APP_PATH", "library/");    define("MODULE_PATH", "../library/");         //Podesavanja za FB aplikacije    define('YOUR_APP_ID', ' ');    define('YOUR_APP_SECRET', ' ');         //Podesavanja za slike i za fajlove, ekstenzije     define("PIC_EXT", "jpg,jpeg");    define("GALLERY_EXT", "zip");    define("FILE_EXT", "zip,rar,pdf,doc,docx,xls,xlsx,jpg,gif,png,jpg");    //define("DOMAIN" , '');        define("FILE_MANAGER_PATH", "/home/free1/public_html/dev/uploads");         //Autolodujemo sve klase koje nadjemo u library folderu    function __autoload($class_name) {       if(is_file(APP_PATH . strtolower($class_name) . '.class.php')) {           include APP_PATH . strtolower($class_name) . '.class.php';       } else {          include MODULE_PATH . strtolower($class_name) . '.class.php';       }    }     //Kreiramo osnovne klase    $db = new Database();    $f  = new Functions();    $site  = new Site();         //utvrdjujemo koji je lang code, tj. na kom smo jezuku    $lang_code = $f->getValue("lang_code");     //Ako nema jezika onda cemo da iscitamo defaultni    if($lang_code == "") {        $language = new View("languages", 1, "is_default");       $currentLanguage = $language->id;       $lang_code = $language->code;    } else {        //Ako je setovan onda pravimo objekat sa tim jezikom        $language = new View("languages", $lang_code, "code");         $currentLanguage = $language->id;    }            //Iz lang fajla citamo sve promenljive i pakujemo u niz. Sve se nalazi u nizu $languageFileValues     $langfile = simplexml_load_file("library/languages/".$lang_code.".xml");     $languageFileValues = array();     foreach($langfile as $constant) {         $constkey = $constant->const;         $languageFileValues["$constkey"] = "$constant->value";     }         //Citamo iz settings tabele sve za ovaj jezik     $settings = new View("settings", $currentLanguage, "lang_id");         //Vadimo sva podesavanja za jezik    $configSiteTitle           = $settings->site_title;    $configSiteFooter          = $settings->site_footer; $dataSettings['site_footer'];    $configSiteKeywords        = $settings->site_keywords;    $configSiteDescription     = $settings->site_description;    $configSiteEmail           = $settings->site_email;    $configSiteDomain       = $settings->site_domain;         //Pitamo da li je logovan korisnik i pravimo objekat    //$logedUser = $f->logedUser();    $logedUser = $_SESSION["logedUser"];    if(!$logedUser) {       $isLoged = false;    } else {        $user = new View("users", $logedUser);        $isLoged = true;    }        //niz za osobine    $osobineNiz = array(       'svi-tipovi-objekta' => array(          'vlasnistvo' => 'Vlasništvo',          'spratnost' => 'Spratnost',          'gradnja' => 'Gradnja',          'grejanje' => 'Grejanje',          'velicina' => 'Veličina',          'kuca_spratnost' => 'Kuća spratnost',          'za_kucu' => 'Za kuću',          'spratnost' => 'Spratnost',          'namestenost' => 'Nameštenost',          'izdavanje_sobe' => 'Izdavanje sobe',          'kancelarije' => 'Kancelarije',          'garaza' => 'Garaza',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci'       ),       'stan' => array(          'vlasnistvo' => 'Vlasništvo',          'struktura' => 'Struktura',          'spratnost' => 'Spratnost',          'gradnja' => 'Gradnja',          'grejanje' => 'Grejanje',          'velicina' => 'Veličina',          'namestenost' => 'Nameštenost',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci'       ),       'kuca' => array(          'vlasnistvo' =>'Vlasništvo',          'gradnja' => 'Gradnja',          'kuca_spratnost' => 'Kuća spratnost',          'za_kucu' => 'Za kuću',          'namestenost' => 'Nameštenost',          'grejanje' => 'Grejanje',          'dodaci' => 'Dodaci',          'izgled' => 'Izgled',          'depozit' => 'Depozit',          'stanarina' => 'Stanatina',          'ljubimci' => 'Ljubimci'       ),       'soba' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'spratnost' => 'Spratnost',          'namestenost' => 'Nameštenost',          'izgled' => 'Izgled',          'grejanje' => 'Grejanje',          'dodaci' => 'Dodaci',          'izdavanje_sobe' => 'Izdavanje sobe',          'stanarina' => 'Stanarina',          'depozit' => 'Depozit',          'ljubimci' => 'Ljubimci',          'soba' => 'Soba'       ),       'garaza' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'garaza' => 'Garaza',          'stanarina' => 'Stanarina'       ),       'ostalo' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'lokal' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'spratnost' => 'Spratnost',          'izgled' => 'Izgled',          'grejanje' => 'Grejanje',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'kancelarijski-prostor-poslovni-prostor' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'kancelarije' => 'Kancelarije',          'spratnost' => 'Spratnost',          'grejanje' => 'Grejanje',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'hale-magacini' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'kancelarije' => 'Kancelarije',          'grejanje' => 'Grejanje',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'ugostiteljski-objekat' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'spratnost' => 'Spratnost',          'namestenost' => 'Nameštenost',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'kiosk-stand' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'kiosk_stand' => 'Kiosk/Štand',          'dodaci' => 'Dodaci',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'plac-stovariste' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'poljoprivredno-zemljiste' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'depozit' => 'Depozit',          'stanarina' => 'Stanarina'       ),       'kuca-vikendica'  => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'za_kucu' => 'Za kuću',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci',          'grejanje' => 'Grejanje',          'ljubimci' => 'Ljubimci'       ),       'apartman' => array(          'vlasnistvo' => 'Vlasništvo',          'gradnja' => 'Gradnja',          'spratnost' => 'Spratnost',          'soba' => 'Soba',          'grejanje' => 'Grejanje',          'izgled' => 'Izgled',          'dodaci' => 'Dodaci',          'ljubimci' => 'Ljubimci'       )    );     ?>

view.class.php
<?php class View extends Functions {        public $db, $f;    private $table, $key_value, $key_field;        function __construct($table, $key_value = false, $key_field = "id") {       $this->db = Database::__construct();       $this->f  = Functions::__construct();              $this->table = $table;       $this->key_value = $key_value;       $this->key_field = $key_field;              $this->setFields();              if($key_value) {                    $this->getData();       }           }        function createTableName($title) {        $tableName = strtolower($title);        $tableName = str_replace(" ", "_", $tableName);        $tableName = "_content_".$tableName;        return $tableName;    }        function createColumnName($title) {        $columnName = strtolower($title);        $columnName = str_replace(" ", "_", $columnName);        return $columnName;    }        function __destruct() {       unset($this->db, $this->f);    }        function Save() {              $fields = $this->getFields();              $SQL = "";              // if there is key value, then update this row in a table, else create a new one       if($this->key_value !== false) {                 $SQL = "UPDATE `".$this->table."` SET ";          foreach ($fields as $key => $field_info) {             if($field_info['Field'] != $this->key_field) {                $SQL .= "`".$field_info['Field']."` = '".$this->{$field_info['Field']}."', ";             }          }                    $SQL = substr($SQL, 0, strlen($SQL) - 2);          $SQL .= " WHERE `".$this->key_field."` = '".$this->key_value."'";              } else { // here we create a new one                    $SQL = "INSERT INTO `".$this->table."` (";          foreach ($fields as $key => $field_info) {             if($field_info['Field'] != $this->key_field) {                $SQL .= "`".$field_info['Field']."`, ";             }          }          $SQL = substr($SQL, 0, strlen($SQL) - 2);          $SQL .= ") VALUES (";          foreach ($fields as $key => $field_info) {             if($field_info['Field'] != $this->key_field) {                $SQL .= "'".$this->{$field_info['Field']}."', ";             }          }          $SQL = substr($SQL, 0, strlen($SQL) - 2);          $SQL .= ")";                 }              Database::execQuery($SQL);       if($this->key_value === false)          $this->id = $this->insertId;           }        function Remove() {       if($this->key_value !== false) {          Database::execQuery("DELETE FROM `".$this->table."` WHERE `".$this->key_field."` = '".$this->key_value."'");       }    }        function linkWith($foreign_table, $foreign) {                     $SQL = "SELECT * FROM ";       $SQL .= "`".$foreign_table."` WHERE ";       foreach ($foreign as $rel_id => $for_id) {                    $replacment = (isset($this->{$for_id})) ? $this->{$for_id} : $for_id;                    $SQL .= "`".$rel_id."` = '".$replacment."' AND ";       }       $SQL = substr($SQL, 0, strlen($SQL) - 4);              $returnObject = array();              $query = Database::execQuery($SQL);       while($data = mysql_fetch_array($query, MYSQL_ASSOC)) {                    $returnObject[] = new View($foreign_table, $data['id']);       }              return $returnObject;           }        function linkWithCustom($foreign_table, $SQL) {       $returnObject = array();       $query = Database::execQuery($SQL);       while($data = mysql_fetch_array($query, MYSQL_ASSOC)) {                    $returnObject[] = new View($foreign_table, $data['id']);       }              return $returnObject;    }        function extend($input) {       foreach ($input as $field => $value) {                    if(isset($this->{$field})) {             $this->{$field} = $this->stringCleaner($value);          }       }    }        /**     * Checks if the input value is valid     *     * @param string $value     * @param string $filter bool, email, float, int, ip, regex, url     * @param string $input_type     * @return input value if valid, false otherwise     */    function checkInput($value, $filter, $input_type = INPUT_POST) {              $filter_id = "";       switch ($filter) {          case "bool":    $filter_id = FILTER_VALIDATE_BOOLEAN;  break;          case "email":    $filter_id = FILTER_VALIDATE_EMAIL;  break;          case "float":    $filter_id = FILTER_VALIDATE_FLOAT;  break;          case "int":    $filter_id = FILTER_VALIDATE_INT;  break;          case "ip":      $filter_id = FILTER_VALIDATE_IP;  break;          case "regex":    $filter_id = FILTER_VALIDATE_REGEXP;  break;          case "url":    $filter_id = FILTER_VALIDATE_URL;  break;                 }              return filter_input($input_type, $value, $filter_id);           }        function dateNow() {       return date("Y-m-d H:i:s");    }        private function setFields() {       $q = Database::execQuery("SHOW COLUMNS FROM `".$this->table."`");              while($data = mysql_fetch_array($q, MYSQL_ASSOC)) {          $this->{$data['Field']} = "";       }    }        private function getFields() {              $q = Database::execQuery("SHOW COLUMNS FROM `".$this->table."`");              $fields = array();       while($data = mysql_fetch_array($q, MYSQL_ASSOC)) {          $fields[] = $data;       }              return $fields;           }        private function getData() {       $query = Database::execQuery("SELECT * FROM `".$this->table."` WHERE `".$this->key_field."` = '".$this->key_value."'");       if(mysql_num_rows($query) == 1) {          $row = mysql_fetch_array($query, MYSQL_ASSOC);          foreach ($row as $key => $value) {             $this->{$key} = $value;          }                    /*          $foreignKeysQuery = Database::execQuery("SELECT * FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '".DB_BASE."' AND CONSTRAINT_NAME != 'PRIMARY' AND TABLE_NAME='".$this->table."'");          $num = mysql_num_rows($foreignKeysQuery);          if($num > 0) {              while($dataForeign = mysql_fetch_array($foreignKeysQuery)) {                  $column = $dataForeign["COLUMN_NAME"];                  $this->{$dataForeign["REFERENCED_TABLE_NAME"]._object} = new View($dataForeign["REFERENCED_TABLE_NAME"], $row[$column],$dataForeign["REFERENCED_COLUMN_NAME"]);              }          } */       }    }        function debug($input) {       echo "<pre>";       var_dump($input);       echo "</pre>";    }         }

@Default

wishlist je običan podatak rekord, stavio sam mu varchar.

Ko je trenutno na forumu
 

Ukupno su 836 korisnika na forumu :: 13 registrovanih, 2 sakrivenih i 821 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., Dorcolac, Draganeli, drimer, kolle.the.kid, Koridor, Lazarus, ozzy, strelac07, suton, yrraf, 125