Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Bindowanie w MySQLi
Xart
post
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Witam dotychczas swoje projekty wykonywałem trochę po staremu ;d tzn poprostu $mysqli->query i tyle oraz stosowałem stare zapytania z WHERE itd... nie ważne
Postanowiłem pisać lepiej smile.gif I zajrzałem do manuala i stwierdziłem, że mysqli_stmt class - to może być dobre no i ok czytam, czytam i znalazłem:

  1. if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
  2. $stmt->execute();
  3.  
  4. /* bind variables to prepared statement */
  5. $stmt->bind_result($col1, $col2);
  6.  
  7. /* fetch values */
  8. while ($stmt->fetch()) {
  9. printf("%s %s\n", $col1, $col2);
  10. }
  11.  
  12. /* close statement */
  13. $stmt->close();
  14. }


nie rozumiem tego kawałka kodu $stmt->bind_result($col1, $col2); co to za bindowanie danych pobranych ? w jakim celu i skąd sie wzięły te 2 zmienne questionmark.gif

kolejna sprawa to $stmt->fetch() pobieram dane z bazy do tablicy no OK ale teraz wcześniej miałem np fetch_assoc albo fetch_array ablo fetch_all a tutaj tylko jedna opcja ?

Z głry thx za wyjaśnienie
Go to the top of the page
+Quote Post
PawelC
post
Post #2





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


$col1 jest to Code, $col2 jest to Name czyli ten kod binduje zawartość kolumn smile.gif Gdybyś np chciał pobrać Code, Name i Surname to byś miał:
  1. $stmt->bind_result($col1, $col2, $col3);
a zapytanie wyglądało by tak
  1. SELECT Code, Name, Surname FROM Country

Swoją drogą zamiast mysqli, zainteresuj się PDO smile.gif

Ten post edytował ExPlOiT 25.06.2014, 23:31:10
Go to the top of the page
+Quote Post
nospor
post
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
kolejna sprawa to $stmt->fetch() pobieram dane z bazy do tablicy no OK ale teraz wcześniej miałem np fetch_assoc albo fetch_array ablo fetch_all a tutaj tylko jedna opcja ?


http://pl1.php.net/manual/en/mysqli-stmt.fetch.php
Cytat
Fetch the result from a prepared statement into the variables bound by mysqli_stmt_bind_result().

Czyli jesli uzywasz bind_result() to do odbioru danych masz uzywac fetch(). Nic dodac nic ujac.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 00:42