Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] [MySqli] MySqli->query jak wyswietlic blad
codex
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


Problem powstaje gdy próbuję wykonać dodawanie rekordu do utworzonej wcześniej bazy tabeli.
Niby nie wywala żadnych błędów, lecz gdy podglądam tabelę w PhpAdmin to widzę, że rekord nie został dodany.
Kod który skleciłem do tej pory nie wyświetla co to za błąd.
oto kod:

  1. $DBHOST= 'fdb2.biz.nf';
  2. $DBUSER='****dbuser****';
  3. $DBPASSWORD='****dbpassword****';
  4. $DBNAME='****dbname****';
  5. $TABNAME='userlog';
  6.  
  7.  
  8. $email = $_POST['enailAddress'];
  9. $password = $_POST['setPasswordx'];
  10. $userHost = $_SERVER['REMOTE_HOST'];
  11. $userBrowser = $_SERVER['HTTP_USER_AGENT'];
  12. $defaultUserLevel = '3';
  13.  
  14. $mysqli = new mysqli ( $DBHOST, $DBUSER, $DBPASSWORD, $DBNAME );
  15. if ($mysqli->connect_errno) {
  16. printf("<br>nie mozna zdefiniowac klasy --mysqli-- <br> error: %s <br>",
  17. $mysqli->connect_error);
  18. } else {
  19. printf ("<br>klasa mysqli zdefiniowana <br>");
  20. }
  21. $query = "INSERT INTO $TABNAME VALUE ( ' ', $email, $password,
  22. $defaultUserLevel,
  23. $userHost,
  24. $userBrowser)";
  25. if (!$mysqli->query($query)) printf ("nie mozna dodac rekordu<br> error: (IMG:style_emoticons/default/questionmark.gif) ?");
  26. $mysqli->close();


W dokumentacji (którą słabo rozumię) mysqli::query mam napisane, że metoda zwraca FALSE w przypadku błędu.
1. Jak wyświetlić jaki to błąd?
2. Ewentualnie co robię źle w tym kodzie ?

Ten post edytował codex 29.11.2015, 16:06:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
codex
post
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


Zrobiłem Commander jak pisałeś - opakowałem stringi w cudzysłowy. Teraz wywala mi taki error:


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'xxxxxxxx, 3, "", ")' at line 1



Słabo kumam angielski.
1. Czy tam nie ma być jakiś przecinek na końcu tej listy parametrów ?
2. Co oznacza ta liczba 3 w komunikacie błędu - liczba parametrów po 'xxxxxxxx' ? - (by się zgadzało) czy zbieg okoliczności
3. Co do mysqli_real_escape_string oraz innych kwestii bezpieczeństwa - przyjdzie czas nie mogę narzucać sobie dodatkowego
materiału teraz gdy mi przyszło ogarniać HTML, PHP, JS, CSS i teraz jeszcze zderzenie MySql (IMG:style_emoticons/default/facepalmxd.gif) styknie.
w ogóle co do bezpieczeństwa ... na szybko to przypomniał mi się art gynvaela o funkcji printf() użytej w formularzach,
myślę, że kwestia bezpieczeństwa to zbyt szeroki temat teraz bo mam tak, że jak zacznę coś to .... (IMG:style_emoticons/default/smile.gif) . Na teraz to chcę mieć
serwis który cos robi, normalnie działa. mam tyle na razie:
free poker
bez kwestii bezpieczeństwa się nie obejdzie ponieważ można by było oszukiwać jak to w pokerze bywa (IMG:style_emoticons/default/smile.gif)

-----------------------------------------
edycja:
Nie mogę korzystać z wersji mysql mo server wywala błędy, że funkcja jest przestarzała w miejsce tego muszę mysqli
podawać. da się to jakoś poustawiać żeby łykał mysql było by łatwiej - jest masa przykładów użycia.

Ten post edytował codex 29.11.2015, 17:08:46
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 09:28