CPP (hay còn gọi là C ++) + MySQL

MySQL

Xin chào các bạn, ở đây tôi mang đến cho các bạn một ví dụ về cách kết nối giữa C ++ và MySQL trong GNU / Linux, tất nhiên đây chỉ là một ví dụ cơ bản. Trước hết để biên dịch, tôi sẽ sử dụng G ++ và chúng phải được cài đặt các gói libmysql ++ y libmysql ++ - nhà phát triển . Đây là ví dụ:

#include #include #include sử dụng không gian tên std; #define SERVER "HOST" #define USER "USR" #define PASSWORD "PSWD" #define DATABASE "example" int main () {MYSQL * connect; kết nối = mysql_init (NULL); if (! connect) {cout << "Khởi tạo MySQL không thành công"; trả về 1; } connect = mysql_real_connect (kết nối, "HOST", "USER", "PASWD", "CƠ SỞ DỮ LIỆU", 0, NULL, 0); if (kết nối) {cout << "kết nối Thành công \ n"; } else {cout << "kết nối không thành công \ n"; } MYSQL_RES * res_set; Hàng MYSQL_ROW; mysql_query (kết nối, "chọn * từ dữ liệu;"); không dấu int i = 0; res_set = mysql_store_result (kết nối); unsigned int numrows = mysql_num_rows (res_set); cout << endl; cout << "\ t -------------------------------------------- ------------------------- \ t "<< endl; while (((row = mysql_fetch_row (res_set))! = NULL)) {// cout << "% s \ n", row [i]! = NULL? row [i]: "NULL"; cout << "\ t | \ t" << row [i] << "\ t | \ t" << row [i + 1] << "\ t | \ t" << row [i + 2] << "\ t | \ t" << endl; cout << "\ t -------------------------------------------- ------------------------- \ t "<< endl; } mysql_close (kết nối); trả về 0; }

Chà, nếu bạn không biết cách biên dịch trong G ++ thì đây là một ví dụ:

g ++ -o main main.cpp -L / usr / include / mysql -lmysqlclient -I / usr / include / mysql

Sau đó, bạn chạy nó và nó sẽ trông như thế này:

------------------------------------- | 1 | Carmen | 46 | ------------------------------------- | 2 | Juan | 56 | --------------------------------------

Lưu ý: bạn cũng có thể biên dịch nó bằng cách sử dụng MAKEFILE METHOD.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   pandev92 dijo

    C ++ ... ngôn ngữ đó đã đánh bại tôi từ lâu ...

    1.    eliotime3000 dijo

      Tôi khao khát nhiều hơn nữa với ngôn ngữ lập trình đó (sự rõ ràng và khả năng mà nó mang lại là không thể thay thế).

      1.    pandev92 dijo

        Tôi không nói không, chỉ vì nó rất khó đối với tôi, python hay mono, chúng có vẻ dễ sử dụng hơn.

        1.    giskard dijo

          Gắn bó với Python. Giúp bạn làm việc hiệu quả hơn trong thời gian ngắn hơn.

        2.    eliotime3000 dijo

          Python có thể có khả năng sửa các lỗi làm chậm các chương trình như trung tâm phần mềm hoặc Ubiquiti, nhưng Java, chỉ để giết thời gian.

          Trên thực tế, với C ++, tôi có thể hiểu các mã tốt hơn (mặc dù hầu hết đều thấy một mê cung các mã không thể đọc được) và tôi có thể có khái niệm rõ ràng về những gì nó sẽ làm (mặc dù Java dễ hiểu mã hơn trong lần đầu tiên. , Tôi thấy nó như thể nó là CƠ BẢN và nói thật là tôi thích làm việc với OpenJDK thay vì Java JDK vì sợ rằng Oracle sẽ đặt thêm nhiều lỗi cho cái quái quỷ).

    2.    nelson dijo

      tôi cũng vậy

  2.   ferchmetal dijo

    Cảm ơn bạn.

  3.   Eduardo dijo

    Ví dụ cơ bản? Sau đó, nó sẽ là cổ điển:
    lớp: 2 + 2 = 4
    nhiệm vụ: 2 × 3 = 6
    Đề thi: nếu Eduardo có 20 quả cam và anh ta phải chia chúng cho 4 đứa trẻ thì khối lượng cơ thể của chúng là bao nhiêu?

    1.    eliotime3000 dijo

      1.- Giải quyết vấn đề (điều quan trọng nhất và điều thực sự mất nhiều thời gian hơn đối với người mới làm quen)
      2.- Dịch giải pháp sang C ++ (nếu là ngôn ngữ đó, những ngôn ngữ mới sẽ từ bỏ trong hầu hết các trường hợp và hơn thế nữa nếu họ sử dụng GNU Emacs).
      3.- Gỡ lỗi như một biện pháp phòng ngừa và biên dịch (thực ra thì ngược lại, nhưng ít người làm quá trình đó).

      Tái bút: Bài kiểm tra đó là chống tự mãn / lừa dối.

  4.   Eduardo dijo

    Ba lần xin lỗi trường hợp comment mà page báo lỗi server nội bộ và có lẽ vì vậy khi thử lại mới đăng lại.
    Xin chào và cảm ơn cho bài viết !!

    1.    eliotime3000 dijo

      Không vấn đề gì. Dù sao, tôi đang nhận xét về Chromium hàng đêm cho Windows và tôi không gặp bất kỳ vấn đề nào về bản chất đó khi nhận xét (mặc dù tôi khuyên bạn nên đăng ký để hệ thống nhận xét sẽ ném cho bạn nhiều lỗi hơn Windows Millenium).

      1.    eliotime3000 dijo

        Tôi muốn nói: "mặc dù tôi khuyên bạn nên đăng ký để hệ thống nhận xét ném cho bạn ít lỗi hơn so với Windows Millenium" [errare humanum est].

        1.    pandev92 dijo

          trăn lol

  5.   eliotime3000 dijo

    Đoạn mã đó là C ++ đẹp nhất mà tôi từng thấy (trình xem cơ sở dữ liệu kiểu KISS).

    Bây giờ, nếu mã này có thể được biên dịch trên Windows bằng GNU Emacs kết hợp với GCC trên Windows (có MySQL / MariaDB), thì đó sẽ là một cột mốc quan trọng.

  6.   diệt chuột dijo

    Không nghi ngờ gì nữa, c ++ là tốt nhất mà chúng tôi có, tôi đã thực hiện vô số bài kiểm tra về hiệu suất và khả năng mà nó mang lại cho chúng tôi và chắc chắn không có gì vượt qua được nó, tất nhiên là tôi nhận ra rằng nó có thể làm đau đầu một số

    1.    eliotime3000 dijo

      Tôi ngưỡng mộ ngôn ngữ đó, nhưng tôi thiếu thực hành (và đủ) để có thể thành thạo nó hoàn toàn và do đó có thể tạo ra một ứng dụng trực quan tốt với Qt.

  7.   jamin samuel dijo

    Huy không

    Tôi thích Python hơn

    ????

    1.    diệt chuột dijo

      Vâng, mọi người điên với lời chào chủ đề của mình

    2.    giskard dijo

      Sự lựa chọn tuyệt vời.

    3.    eliotime3000 dijo

      [ích kỷ] Lười biếng [/ ích kỷ].

  8.   julian dijo

    Tôi thích VB.NET hơn, nó dễ dàng hơn nhiều và hỗ trợ tốt cho SQL Server. Ngoài năng suất cao hơn các ngôn ngữ khác và là một trong những ngôn ngữ được yêu cầu nhiều nhất khi tìm việc. Tôi không muốn lãng phí thời gian của mình với C ++

    1.    pandev92 dijo

      Nếu chúng ta nhận được như vậy, yêu cầu nhiều nhất thường là Java.

      1.    eliotime3000 dijo

        Nó giống như VB.NET, nhưng đồ họa hơn nhiều và nó vô ích khi làm việc trên GNU / Linux.

  9.   diệt chuột dijo

    Tôi chỉ đề xuất C ++ bc thăm dò tạo một bán hàng đơn giản trong c ++, python và qt và bất ngờ hàng rào:
    Python-> 7.6 mb
    Qt -> 27 mb (XD)
    C ++ -> 2.4 mb

    Vâng, tất cả những người rút ra kết luận của riêng mình, xin chào

    1.    giskard dijo

      Python 7.6MB ??? Không đời nào! Không thể nào. Nếu chúng không hơn gì script. Hoặc bạn đã có hình ảnh? Chia sẻ mã. Đây là cách tất cả chúng ta nhìn thấy nó và so sánh nó. Thuyết phục chúng tôi.

      1.    diệt chuột dijo

        Bạn nói đúng, một con trăn lỗi nhỏ đã không tiêu thụ 7.6 mb nhưng nếu 6.2 mb nên bạn cho tôi biết bây giờ ...
        Đây là mã và tôi nghĩ nó không thể được tối ưu hóa hơn:
        #! / usr / bin / python
        từ gi.repository nhập Gtk

        win = Gtk.Window ()
        win.connect ("delete-event", Gtk.main_quit)
        win.show_all ()
        Gtk.main ()

        1.    giskard dijo

          Tôi tưởng tượng bạn có nghĩa là tiêu thụ RAM. Vấn đề là, trong Python và hầu hết mọi ngôn ngữ, bạn mở rộng một đường cong tiệm cận khi bạn làm phức tạp mã. Chỉ để thử nghiệm, tôi đã chạy một trò chơi mà tôi đang phát triển với PyGame. Hoạt ảnh + âm thanh nền + âm thanh cho các sự kiện và chỉ đạt 14MB. Rõ ràng là chương trình của bạn sẽ không đơn giản như một cửa sổ mà phức tạp hơn, cuối cùng thì bạn sẽ thấy rằng, khi bạn có đủ mã, các sửa đổi lớn trong đó sẽ không mang lại cho bạn mức sử dụng RAM lớn hơn.

        2.    giskard dijo

          Để đơn giản hóa những gì tôi đang giải thích một chút: Bạn không thể tạo hồ sơ thời gian nếu bạn không chạy một đoạn mã vài nghìn lần, phải không? Chà, theo cách tương tự, bạn không thể biết một ngôn ngữ sử dụng nhiều hay ít chỉ bằng cách nhìn vào ví dụ đơn giản nhất có thể. Trên thực tế, mẹo là trông càng phức tạp càng tốt.

          1.    diệt chuột dijo

            Theo hiểu biết của tôi ở cấp độ lập trình là 01010111, hợp ngữ và sau đó là c, đến mức không thể có ngôn ngữ cấp cao như python vượt qua ac / c ++ về hiệu suất (theo mọi cách) và tốt hơn là một ví dụ rất đơn giản như tạo một cửa sổ để thấy sự khác biệt 3.8 mb khi chỉ hiển thị một cửa sổ đơn giản, khi bạn thêm tải vào chương trình của mình (một chương trình lớn, có trọng lượng tốt với hơn 5 dạng và áp dụng các lớp, kế thừa, đa hình, hàm ảo, con trỏ và hơn thế nữa để đưa ra ví dụ) Tôi đảm bảo với bạn rằng bạn sẽ thay đổi quan điểm của mình, tôi muốn nói rõ rằng tôi không chỉ trích các ngôn ngữ lập trình khác và Python ít hơn nhiều so với cantrario, tôi chỉ nhận xét và kiểm tra những ưu điểm và nhược điểm mà tôi nhìn thấy bằng mắt thường mà không khuyến khích để làm sâu sắc hơn lời chào

          2.    giskard dijo

            Kiểm tra cái này:

            http://www.youtube.com/watch?v=cPVlYWxcu18

            Nhưng hãy xem video đầy đủ. Đừng lừa dối rằng nếu không, bạn sẽ chỉ đơn giản đưa ra ý kiến ​​dựa trên định kiến.

          3.    giskard dijo

            Trong mọi trường hợp bạn không hiểu tôi. Khi bạn phức tạp hóa vấn đề, cả hai ít nhiều sẽ có cùng trọng lượng. Nhân tiện, trên trang Lazarus, họ đưa ra một biểu đồ về điều đó, so sánh Lazarus với C.
            Cuối cùng mọi thứ đều là bạn bè tương đối. Bởi vì con người không chỉ sống trên RAM.

    2.    eliotime3000 dijo

      Ít nhất thì QT tương thích với các giao diện Aqua, Win32 (và các biến thể Aero và Metro của chúng) và các giao diện khác ngoại trừ LXDE (thành thật mà nói thì có vẻ như Windows 95).

      1.    pandev92 dijo

        gtk2 trong aqua có vẻ tốt ...