Kako da insertiram u bazu?

Autor erbi, 13. Listopad 2012, 17:44

0 Članovi i 1 Gost pregledava ovu temu.

erbi

Stavio sam jedan kod i neče mi ispravno radit. Ako uradim ovako:
$sSql = "INSERT INTO #__card_status_history(".
"operator, ".
"request_id, ".
"user_id, ".
"date, ".
"time, ".
"status ";
$sSql = $sSql.") VALUES(".
"'".$operator."',".
"'".$resource."',".
"'".$user_id."',".
"'".$startdate."',".
"'".$starttime."',".
"'".$request_status."'";
$sSql = $sSql.")";
$database->setQuery($sSql);

Šta ovdje nije Ok, da insert ne radi? Ništa ne ide u bazu...

Dario

Neznam da li si instanciral JFactory objekt prije pokušavanje insertanja u bazu, uglavnom ovo bi trebalo radit ako su ti imena tablica dobra.... Ako se ništa ne događa, upali se "display_errors" i "error_reporting" stavi na "E_ALL"  u php.ini datoteci.... Ili pogledaj u serverskom error log-u o čemu se radi.. .uglavnom bilo koje od ova dva bi ti trebala dati nekakvo objašnjene zašto se ne zapisuje...

$database = & JFactory::getDBO();
$sSql = "INSERT INTO #__card_status_history(" .
        "operator, " .
        "request_id, " .
        "user_id, " .
        "date, " .
        "time, " .
        "status ";
$sSql = $sSql . ") VALUES(" .
        "'" . $operator . "'," .
        "'" . $resource . "'," .
        "'" . $user_id . "'," .
        "'" . $startdate . "'," .
        "'" . $starttime . "'," .
        "'" . $request_status . "'";
$sSql = $sSql . ")";
$database->setQuery($sSql);
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

Nikako ne radi, nema ni nikakvog errora. Ako stavim echo &sSql dobijem:
INSERT INTO #__card_status_history(operator, request_id, user_id, date, time, status ) VALUES('238','4','323','2012-10-15','08:35:51','accepted')
a record ne ide u bazu.
U bazi ide samo ako na početku stavim:
$database->setQuery("LOCK TABLES #__card_status_history WRITE");
if(!$database->query()){
echo "Unable to LOCK tables";
exit;
}

Al onda na monitoru ne pokazuje podataka, koji su bili spremljeni u jednu tabelu iznad ove npr:
Pozdrav, Ime i prezime, vaša debetna kartica broj .....

erbi

Ovo još nisam uspio, da bi proradilo. Šta uradi:
$database->setQuery($sSql);
a šta:
$database->query();
Ako stavim ovo drugo, upiše mi u tablicu, al se mi srušijo jedni podaci, koji su potrebni za skripta radi dalje.

Dario

$database->setQuery($sSql) "stavlja izvršavanje na odgodu", odnosno dodaje query u que, a $database->query(); izvršava trenutni que koji je dodan ovom prvom metodom....
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

Hvala Dario, al nemam pojma. Sad znam manje kao prije, a prije nisam znao ništa ... :)

Dario

Znači da na kraj ovog koda koji si zalijeio u prvom postu samo dodaj još
$database->query();

Ti si u gornjem kodu sastavio query i dodao ga na "listu čekanja" za izvršavanje, ali ta metoda sama za sebe ne predstavlja ništa ako ju ne izvršiš, a $database->query(); upravo to radi.
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

A, sad mi je jasno. Sad moram samo pronači, zašto se mi podaci, koju su iznad ovog mojeg upišu u jednu tabelu i onda ako stavim ovo se upišu i u moju, al se sruši neki podaci. Funkcija koja sljedi upotrebljava neke parametre, al tih po tom uopšte nema više.

Dario

Kao što rekoh.... sa $database->setQuery(); dodaješ query u que... dakle u trenutno kad ti se izvrši prvi zapis u bazu, zapisuje se samo prvi query....
Nakon toga ti dodaješ svoj query sa $database->setQuery($sSql) i time u que dodaješ i svoje podatke, dakle sad imaš dva seta podataka koji se upisuju....

Lijepo si napravi print_r da vidiš kaj se sve nalazi u setQuery(), naravno ako je moguće - nisam nikad proučavao to, ali pretpostavljam da zapisuje que-ove u array pa vidi... Ako je tako onda probaj unset-at ovaj prvi query nakon izvrašavnja.... Moraš mal odebugirati  :)
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu