Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]PHPadmin może wpisywać a z PHP nie moge?
Shylios
post 21.12.2008, 18:26:14
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Witam...

Więc mam taki problem, wpisuje z poziomu php do bazy danych
Kod
$field[1]=$_POST['tytul'];
     $field[2]=$_POST['tresc1'];
     $field[3]=$_POST['tresc2'];
     $field[4]=$_POST['data'];
     $query="INSERT INTO news (`tytul`,`tresc1`,`tresc2`,`data`) VALUES ('".$field[1]."','".$field[2]."','".$field[3]."','".$field[4]."')";
     $result=mysql_query($query) or die( mysql_error() );

I wywala mi błąd
Cytat
Table 'shylios.news' doesn't exist


Pomimo że tabela istnieje, i gdy z poziomy phpmyadmin daje to samo tylko że zamiast zmiennych daje jakieś wartości to działa O_O

Zaznaczę że połączenie jest dobrze napisane, oraz wszystkie zmienne mają wartość...

Czy wiece czemu tak się dzieje??

Ten post edytował Shylios 21.12.2008, 18:26:49
Go to the top of the page
+Quote Post
piotrooo89
post 21.12.2008, 18:31:22
Post #2


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




ja bym to tak zrobił:

  1. <?php
  2. $tyt=$_POST['tytul'];
  3. $txt1=$_POST['tresc1'];
  4. $txt2=$_POST['tresc2'];
  5. $data=$_POST['data'];
  6. $query=mysql_query("INSERT INTO news SET
  7. tytul='$tyt',
  8. tresc1='$txt1',
  9. tresc2='$txt2',
  10. data='$data'");
  11. ?>


zakładając że masz pełen dostęp do bazy i poprawnie podajesz nazwy kolumn, tabeli i bazy.

Ten post edytował piotrooo89 21.12.2008, 18:36:46


--------------------
Go to the top of the page
+Quote Post
Shylios
post 21.12.2008, 18:35:51
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Cytat(piotrooo89 @ 21.12.2008, 19:31:22 ) *
ja bym to tak zrobił:

  1. <?php
  2. $tyt=$_POST['tytul'];
  3. $txt1=$_POST['tresc1'];
  4. $txt2=$_POST['tresc2'];
  5. $data=$_POST['data'];
  6. $query=mysql_query(&#092;"INSERT INTO news SET
  7. tytul='$tyt';
  8. tresc1='$txt1',
  9. tresc2='$txt2',
  10. data='$data'&#092;");
  11. ?>


zakładając że masz pełen dostęp do bazy i poprawnie podajesz nazwy kolumn, tabeli i bazy.


Query was empty O_O

-Sprawdziałem, ponownie, dane w zmiennych posiadają wartości

Ten post edytował Shylios 21.12.2008, 18:37:30
Go to the top of the page
+Quote Post
piotrooo89
post 21.12.2008, 18:37:04
Post #4


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




tam była literówka....


--------------------
Go to the top of the page
+Quote Post
Shylios
post 21.12.2008, 18:43:36
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Gdzie Ty widzisz literówkę?
Go to the top of the page
+Quote Post
piotrooo89
post 21.12.2008, 18:44:11
Post #6


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




już ja poprawiłem, dzieje się coś?


--------------------
Go to the top of the page
+Quote Post
erix
post 21.12.2008, 18:45:09
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Zaznaczę że połączenie jest dobrze napisane, oraz wszystkie zmienne mają wartość...

A wybrałeś odpowiednią DB?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Shylios
post 21.12.2008, 18:46:04
Post #8





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Kod
mysql_select_db($mysql_nazwa) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);

Owszem
Go to the top of the page
+Quote Post
piotrooo89
post 21.12.2008, 18:49:33
Post #9


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




poczytaj to i to i powiedz czy robisz tak samo.


--------------------
Go to the top of the page
+Quote Post
Shylios
post 21.12.2008, 20:18:24
Post #10





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Kod
//Łączenie z MySQL
$mysql_connect=mysql_connect($mysql_dir,$mysql_login,$mysql_haslo) or die('Nie udało się połączyć z bazą MySQL');
mysql_select_db($mysql_nazwa,$mysql_connect) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);

A widzisz różnicę? winksmiley.jpg
Go to the top of the page
+Quote Post
erix
post 21.12.2008, 21:36:47
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Owszem

A nie zrobiłeś gdzieś przypadkiem literówki? Może podaj jakiś większy kawałek kodu.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Shylios
post 22.12.2008, 10:38:59
Post #12





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Wszystko co Ci potrzeba

Kod
include('config.php');

//Łączenie z MySQL
$mysql_connect=mysql_connect($mysql_dir,$mysql_login,$mysql_haslo) or die('Nie udało się połączyć z bazą MySQL');
mysql_select_db($mysql_nazwa,$mysql_connect) or die('Nie udało się wybrać bazy: '.$mysql_nazwa);


Kod
function dodaj_news()
    {
    ?>
        <form action="?do=addnews" method="post">
        Tytul:<br /><input type="text" name="tytul" size="60"><br />
        Tresc(dla indexu):<br /><textarea name="tresc1" rows="10" cols="65"></textarea><br />
        Tresc(czytaj wiecej)*:<br /><textarea name="tresc2" rows="10" cols="65"></textarea><br />
        Data dodania:<br /><input type="text" name="data" value="<?php echo date("G:i - d/m/Y");?>"><br /><br />
        <input type="submit" value="Wyślij"> <input type="reset" value="Reset">
        </form><br />
        <center><font style="font-size:7pt">* - pole nieobowiązkowe</font></center>
    <?php
    }


Kod
function dodaj_news_mysql()
    {
    $tyt=$_POST['tytul'];
    $txt1=$_POST['tresc1'];
    $txt2=$_POST['tresc2'];
    $data=$_POST['data'];
    if ($tyt!=null && $txt1!=null && $data!=null)
        {
            $query=mysql_query("INSERT INTO news SET tytul='$tyt';tresc1='$txt1',tresc2='$txt2',data='$data'");
            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
        }
        elseif ($tyt==null)
        {
        echo 'Tytuł nie może być pusty!';
        }
        elseif ($txt1==null)
        {
        echo 'Treść dla indexu nie może być posta!';
        }
        elseif ($data==null)
        {
        echo 'Musisz podać datę!';
        };
    }


Ten post edytował Shylios 22.12.2008, 10:39:27
Go to the top of the page
+Quote Post
erix
post 22.12.2008, 11:26:37
Post #13





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $query=mysql_query("INSERT INTO news SET tytul='$tyt';tresc1='$txt1',tresc2='$txt2',data='$data'");
  3.            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
  4. ?>
  1. kod podatny na SQL Injection
  2. po kiego grzyba podstawiasz resource pod mysql_query" title="Zobacz w manualu PHP" target="_manual?
  3. od kiedy do oddzielania pól przy INSERT używa się średnika? Raz oddzielasz przecinkiem, raz średnikiem...


Ten post edytował erix 22.12.2008, 11:27:03


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Shylios
post 22.12.2008, 12:01:07
Post #14





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 19.07.2008

Ostrzeżenie: (0%)
-----


Poprawione, i nic dalej
Kod
    $tyt=mysql_escape_string($_POST['tytul']);
    $txt1=mysql_escape_string($_POST['tresc1']);
    $txt2=mysql_escape_string($_POST['tresc2']);
    $data=mysql_escape_string($_POST['data']);
    
    if ($tyt!=null && $txt1!=null && $data!=null)
        {
            $query="INSERT INTO `news` SET `tytul` = '$tyt', `tresc1` = '$txt1', `tresc2` = '$txt2', `data` = '$data'";
            $result=mysql_query($query) or die(mysql_error()); echo 'News dodany prawidłowo!';
        }


Teraz dostaje że tabele nie istnieje - ale ją w phpadminie widze
Go to the top of the page
+Quote Post
piotrooo89
post 22.12.2008, 15:39:16
Post #15


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a wybierasz poprawną bazę danych? bo jest to niemożliwe żeby nie działało. ja nie widzę innej przyczyny


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:20