• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Przesiadka z podejścia proceduralnego na zorientowany obiektowo - pierwsze kroki

Object Storage Arubacloud
0 głosów
314 wizyt
pytanie zadane 28 kwietnia 2019 w SQL, bazy danych przez RuinyOdbudowane Początkujący (330 p.)
<?php
class mysqli_operations
{
    /*
    Klasa która przechowuje funkcję odpowiadające za operacje
    na bazach danych.
    */
    public function insertinto($conn, $sql)
    {
      mysqli_query($conn, 'SET NAMES utf8');
      mysqli_query($conn, $sql);
      mysqli_close($conn);
    }
}

  $sql = "INSERT INTO 'oferty' (branża, nazwa, email, www, telefon, adres, informacje, próba, ponowny_kontakt, special )
          VALUES('$a', '$b', '$c', '$d', '$e', '$f', '$g','$i', '$j', '$special', '$color')";
  require_once('class/mysqli_operations.php');
  $oferta = new mysqli_operations();
  $oferta->insertinto($conn, $sql);

Powyższy kod nie działa. Działał tylko przy proceduralnym podejściu. Czy możecie wskazać gdzie robię błąd? Podejrzewam ,że wina leży w zapytaniu bądź w nieumiejętnym posługiwaniu się programowaniem zorientowanym obiektowo. Przepisuje aplikacje i od kilku godzin się z tym męcze. Pozdrawiam.

komentarz 28 kwietnia 2019 przez Tomek Sochacki Ekspert (227,510 p.)

Powyższy kod nie działa. 

chyba nie działa i nie chcę aby działał... pierwsza zasada - gdy kod nie działa to patrzymy w logi i wraz z pytaniem wrzucamy błędy jakie dostaliśmy, oczywiście po wcześniejszej próbie ich analizy i rozwiązania. Ty nie dałeś żadnych logów więc w moim odczuciu nie chcesz pomóc nam rozwiązać problem...

a tak na marginesie to gdzie masz w ogóle robione połączenie z bazą? możesz je zrobić np. w konstruktorze tej nowej klasy albo wstrzyknąć do konstruktora, zależy już jakie podejście w danym przypadku jest dla Ciebie lepsze.

Ale przede wszystkim pokaż jakie dostajesz błędy, bo oczywiście zakładam, że nie robisz wszędzie małpy tylko normalną obsługę błędów...?

komentarz 28 kwietnia 2019 przez RuinyOdbudowane Początkujący (330 p.)
przeniesione 28 kwietnia 2019 przez Arkadiusz Waluk

Nie dostaje żadnych błędów gdybym jakieś dostał zamieścił o tym informacje. Łączenie z bazą mam tutaj (jeszcze w podejściu proceduralnym):

<?php
$where = "localhost";
$who = "root";
$pass = "";
$database = "baza";
$conn = mysqli_connect($where , $who, $pass , $database);
?>

Nie używam małp :-)

1 odpowiedź

0 głosów
odpowiedź 28 kwietnia 2019 przez newman Gaduła (3,440 p.)
wybrane 28 kwietnia 2019 przez RuinyOdbudowane
 
Najlepsza
Zrób klasę statyczną albo dodaj pusty konstruktor.
komentarz 28 kwietnia 2019 przez RuinyOdbudowane Początkujący (330 p.)

Nie pomogło z użyciem konstruktora.

Użyłem go tak :

  public function __construct()
    {

    }

Co do klasy statycznej to wyskakuje wreszcie jakiś błąd:

Parse error: syntax error, unexpected 'static' (T_STATIC), expecting identifier (T_STRING) in C:\xampp\htdocs\baza\class\mysqli_operations.php on line 2

Ale wydaję mnie się ,że po prostu klasy statycznej nie rozumiem jak się tworzy.

Tak jak piszę raczkuje w tym temacie obiektowości.

komentarz 28 kwietnia 2019 przez newman Gaduła (3,440 p.)
Includujesz plik z połączeniem do bazy w pliku, w którym wykonujesz zapytanie?
komentarz 28 kwietnia 2019 przez RuinyOdbudowane Początkujący (330 p.)

Problem rozwiązałem.

To nie działa.

"INSERT INTO 'oferty' (branża, naz...

Za to - to tak

"INSERT INTO oferty (branża, naz...

 

komentarz 28 kwietnia 2019 przez newman Gaduła (3,440 p.)
W values mogą być znaki '' dla wartości typu string w nazwach tabel nie. Nazwa tabeli, kolmny otoczona '' to nie to samo co bez. To inne table. "" Używa się do wykorzystania słów zastrzezonych np.order i zawierających znaki specjalne.

Podobne pytania

0 głosów
1 odpowiedź 731 wizyt
pytanie zadane 8 września 2018 w Python przez Deriquest Użytkownik (550 p.)
0 głosów
1 odpowiedź 201 wizyt
0 głosów
0 odpowiedzi 294 wizyt
pytanie zadane 15 maja 2017 w SQL, bazy danych przez Marcin_N_97 Stary wyjadacz (10,290 p.)

92,567 zapytań

141,420 odpowiedzi

319,615 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...