Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để kết nối mysql với swift?

Kết nối nhanh chóng với mysql và php rất dễ dàng. Trước tiên, bạn cần một API REST. Bạn có thể tạo một api còn lại bằng cách sử dụng bất kỳ khuôn khổ nào có sẵn. Bạn cũng có thể viết mã Dịch vụ Web của mình chỉ bằng PHP. Vì vậy, ở đây tôi sẽ chỉ ra việc sử dụng bất kỳ khuôn khổ php nào.

Vì vậy, trước tiên hãy tạo một tệp để lưu trữ các hằng số cơ sở dữ liệu của bạn.

<?php
/**
 * Created by PhpStorm.
 * User: Belal
 * Date: 12/08/16
 * Time: 7:58 PM
 */

define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
define('DB_NAME', 'iphone');

Sau đó tạo một tệp php khác để tạo kết nối cơ sở dữ liệu.

<?php

class DbConnect
{
    private $conn;

    function __construct()
    {
    }

    /**
     * Establishing database connection
     * @return database connection handler
     */
    function connect()
    {
        require_once 'Config.php';

        // Connecting to mysql database
        $this->conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);

        // Check for database connection error
        if (mysqli_connect_errno()) {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
        }

        // returing connection resource
        return $this->conn;
    }
}

Bây giờ bạn cần một tệp nữa để xử lý các hoạt động cơ sở dữ liệu của mình.

<?php

class DbOperation
{
    private $conn;

    //Constructor
    function __construct()
    {
        require_once dirname(__FILE__) . '/Config.php';
        require_once dirname(__FILE__) . '/DbConnect.php';
        // opening db connection
        $db = new DbConnect();
        $this->conn = $db->connect();
    }

    //Function to create a new user
    public function createTeam($name, $memberCount)
    {
        $stmt = $this->conn->prepare("INSERT INTO team(name, member) values(?, ?)");
        $stmt->bind_param("si", $name, $memberCount);
        $result = $stmt->execute();
        $stmt->close();
        if ($result) {
            return true;
        } else {
            return false;
        }
    }

}

Cuối cùng, bạn cần tạo tệp php sẽ xử lý yêu cầu http của bạn.

<?php

//creating response array
$response = array();

if($_SERVER['REQUEST_METHOD']=='POST'){

    //getting values
    $teamName = $_POST['name'];
    $memberCount = $_POST['member'];

    //including the db operation file
    require_once '../includes/DbOperation.php';

    $db = new DbOperation();

    //inserting values 
    if($db->createTeam($teamName,$memberCount)){
        $response['error']=false;
        $response['message']='Team added successfully';
    }else{

        $response['error']=true;
        $response['message']='Could not add team';
    }

}else{
    $response['error']=true;
    $response['message']='You are not authorized';
}
echo json_encode($response);

Bây giờ chỉ cần tạo chế độ xem trên Ứng dụng iOS của bạn và trên nút bấm gửi yêu cầu đến tệp php của bạn. Mã như sau.

//
//  ViewController.swift
//  SwiftPHPMySQL
//
//  Created by Belal Khan on 12/08/16.
//  Copyright © 2016 Belal Khan. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

    //URL to our web service
    let URL_SAVE_TEAM = "http://192.168.1.103/MyWebService/api/createteam.php"


    //TextFields declarations
    @IBOutlet weak var textFieldName: UITextField!
    @IBOutlet weak var textFieldMember: UITextField!



    //Button action method
    @IBAction func buttonSave(sender: UIButton) {

        //created NSURL
        let requestURL = NSURL(string: URL_SAVE_TEAM)

        //creating NSMutableURLRequest
        let request = NSMutableURLRequest(URL: requestURL!)

        //setting the method to post
        request.HTTPMethod = "POST"

        //getting values from text fields
        let teamName=textFieldName.text
        let memberCount = textFieldMember.text

        //creating the post parameter by concatenating the keys and values from text field
        let postParameters = "name="+teamName!+"&member="+memberCount!;

        //adding the parameters to request body
        request.HTTPBody = postParameters.dataUsingEncoding(NSUTF8StringEncoding)


        //creating a task to send the post request
        let task = NSURLSession.sharedSession().dataTaskWithRequest(request){
            data, response, error in

            if error != nil{
                print("error is \(error)")
                return;
            }

            //parsing the response
            do {
                //converting resonse to NSDictionary
                let myJSON =  try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary

                //parsing the json
                if let parseJSON = myJSON {

                    //creating a string
                    var msg : String!

                    //getting the json response
                    msg = parseJSON["message"] as! String?

                    //printing the response
                    print(msg)

                }
            } catch {
                print(error)
            }

        }
        //executing the task
        task.resume()

    }


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

Một điều nữa bạn cần làm là thêm các dòng sau vào bên trong tệp Info.plist của bạn, điều này là do theo mặc định, bạn không thể gửi yêu cầu đến các url không được bảo mật vì vậy vì chúng ta có http nên chúng ta phải làm điều này cuối cùng.

<!-- add from here -->
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
        <key>NSExceptionDomains</key>
        <dict>
            <key>yourdomain.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
                <false/>
            </dict>
        </dict>
    </dict>
    <!-- end of the code -->

Nguồn: Hướng dẫn cơ sở dữ liệu MySQL iOS



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để yêu cầu javascript đợi cho mysql gán giá trị cho biến php?

  2. Cách đặt lại mật khẩu gốc MySQL

  3. Làm cách nào để trích xuất từ ​​thứ n và đếm số lần xuất hiện của từ trong một chuỗi MySQL?

  4. Khởi động MySQL Server dưới dạng dịch vụ (Win 8)

  5. Chọn từ bảng mysql WHERE field ='$ array'?