Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 22.08.2012 Ostrzeżenie: (0%)
|
Witam,
stworzyłem sobie klasę łączącą z bazą danych, a w niej funkcję insert, która nie działa poprawnie. Nie ma żadnych błędów ale przeglądając bazę danych nie widać nowo dodanych wartości. Funkcja:
Dziękuję za wszelkie odpowiedzi (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Bindować możesz tylko wartości dla kolumn. Nazwa tabeli, a już tym bardziej cały fragment SQL-a nie może być bindowana.
PS. Dlaczego nie skorzystasz z jakiegoś gotowego narzędzia ułatwiającego komunikację z bazą, np. Doctrine DBAL? |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 22.08.2012 Ostrzeżenie: (0%)
|
Nie korzystam gdyż chciałbym zrobić wreszcie coś swojego (IMG:style_emoticons/default/wink.gif) ,a tak w ógole zauważyłem że trzeba instalować ten moduł poprzez PEAR do czego nie jestem pozytywnie nastawiony.
Btw. dzięki za odpowiedź No niestety, ale nadal nie działa, kod zmieniony:
Najwidoczniej nie do końca zrozumiałem o co ci chodziło :/ Ten post edytował MMySlime 11.11.2012, 16:36:31 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Jak napisałem, możesz bindować jedynie wartość dla pojedynczej kolumny, tj.:
Reszta zapytania musi być złączona ręcznie. Cytat Nie korzystam gdyż chciałbym zrobić wreszcie coś swojego Najpierw uczy się wykorzystywać istniejące narzędzia, później tworzy się swoje jeżeli zachodzi taka potrzeba.
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 1 Dołączył: 22.08.2012 Ostrzeżenie: (0%)
|
Ehhh, szkoda że nie da się tego zautomatyzować.
W każdym bądź razie dzięki za pomoc! |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%)
|
Ehhh, szkoda że nie da się tego zautomatyzować. nie jestem żadnym programistą a już to robiłem kilka razy ;p - da się to rozsądnie zautomatyzować nie narażając się na sql iniection ale trochę pomyśl... możesz wartości zimplodować tyle razy ile ich masz np. po znaku zapytania, poczytaj w manualu jak wtedy bindować i wtedy przypisz tablicę (zwróć uwagę od którego indeksu binduje - łatwiej Ci będzie to zrobić w pętli ;p), lub gdy tworzysz dynamiczne zapytanie to do kluczy musisz dać przedrostek ":" i potem nawet w skrócie do execute dać całą tablicę lub zbindować w pętli po kluczu... nie jestem za dawaniem gotowców niestety więc tylko nakierowuję, jednak znowu się powtórzę, że musisz zrobić dynamiczne zapytanie SQL z parametrami a potem to zbindować, ale jeszcze poczytaj o różnicy w bindowaniu przez referencję a przez wartość ;p - są do tego 2 funkcje ;p lub tablicę możesz przekazać jeszcze raz piszę w execute jeśli nie stosujesz dodatkowych parametrów przy bindowaniu... |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 10:48 |