Jak wstawić wartości z tablicy asocjacyjnej do bazy danych ?

Jak wstawić wartości z tablicy asocjacyjnej do bazy danych ?
PH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

Mam tablicę asocjacyjną, która ma klucze id, home, away, result. Chciałbym teraz wartości z tej tablicy wstawić do tabeli Teams odpowiednio do kolumn id, home, away i result. W jaki sposób mogę to zrobić, dodam że tych rekordów będzie kilkanaście.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
4

Ja np. bym zrobił insert

PH
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

@Dregorio: to wiem, ale w jaki sposób sprawić aby dane zostały wstawione do odpowiednich kolumn, jedyne co mi przychodzi na myśl to jakoś wydzielić te dane z tablicy

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0

No robisz Insert into (id) values (tab["id"]). Osobiście odradzam jakieś pętlę, bo nieumiejętnie to robiąc narazisz się na slqinjection. Zatrzymałem się na PHP5.6 więc nie iem czy jest coś w stylu mysqli_insert_assoc, na szybko nie znalazłem

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
2
phpowiec napisał(a):

Mam tablicę asocjacyjną, która ma klucze id, home, away, result. Chciałbym teraz wartości z tej tablicy wstawić do tabeli Teams odpowiednio do kolumn id, home, away i result. W jaki sposób mogę to zrobić, dodam że tych rekordów będzie kilkanaście.

Kopiuj
<?php
$hostname = 'localhost';
$database = 'moja baza';
$username = 'root';
$password = '845625';

$pdo = new PDO("mysql:host=$hostname;dbname=$database", $username, $password);

$statement = $pdo->prepare('INSERT INTO moja_tablka (name, lastname, age) VALUES (:fname, :sname, :age)');

$statement->execute([
    'fname' => 'Bob',
    'sname' => 'Desaunois',
    'age' => '18',
]);

Nie używaj tych funkcji mysqli_.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0
Riddle napisał(a):

Nie używaj tych funkcji mysqli_.

Coś się zmieniło? Akurat te z i na końcu były bezpieczne

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
2
Dregorio napisał(a):
Riddle napisał(a):

Nie używaj tych funkcji mysqli_.

Coś się zmieniło? Akurat te z i na końcu były bezpieczne

"Bezpieczne"? Razem z mysqli implementacja drivera się zmieniła, ale interfejs tych funkcji nadal jest tak samo słaby jak był.

Nadal nie mają prepared statements, więc są bardzo słabe.

DR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1135
0

Za moich czasów w 5.6 bodaj można było zamiennie używać mysqli i pdo, oba były "dopuszczalne"

Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10307
5
Dregorio napisał(a):

Za moich czasów w 5.6 bodaj można było zamiennie używać mysqli i pdo, oba były "dopuszczalne"

Nie ma powodu żeby wybrać mysqli zamiast PDO. Ma same wady i żadnych zalet.

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3625
4

Czasy się zmieniają i tak jak czas mysql minął tak i mysqli powinno już umrzeć.
Do zalet PDO dodałbym łatwość zmiany silnika bazy, jeśli zajdzie taka potrzeba.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.