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

Swift httppost dữ liệu không chèn vào cơ sở dữ liệu MySQL

Nếu máy chủ chỉ phản hồi yêu cầu hoạt động, thì vấn đề nằm trong máy chủ chứ không phải mã máy khách. Tôi khuyên bạn nên thêm một số xử lý lỗi trong mã PHP:

<?php

// specify that this will return JSON

header('Content-type: application/json');

// open database

$con = mysqli_connect("localhost","user","password","notify");

// Check connection

if (mysqli_connect_errno()) {
    echo json_encode(array("success" => false, "message" => mysqli_connect_error(), "sqlerrno" => mysqli_connect_errno()));
    exit;
}

// get the parameters

$field1 = mysqli_real_escape_string($con, $_REQUEST["firstName"]);
$field2 = mysqli_real_escape_string($con, $_REQUEST["lastName"]);

// perform the insert

$sql = "INSERT INTO user (first_name, last_name) VALUES ('{$field1}', '{$field2}')";

if (!mysqli_query($con, $sql)) {
    $response = array("success" => false, "message" => mysqli_error($con), "sqlerrno" => mysqli_errno($con), "sqlstate" => mysqli_sqlstate($con));
} else {
    $response = array("success" => true);
}

echo json_encode($response);

mysqli_close($con);

?>

Ghi chú:

  1. Tôi không khuyên bạn nên đăng nhập bằng root .

  2. Đảm bảo rằng bạn sử dụng mysqli_real_escape_string để tự bảo vệ mình trước các cuộc tấn công SQL injection (xem điểm 1).

  3. Tôi không biết liệu user của bạn bảng có các trường khác trong đó, nhưng nếu vậy, bạn có thể muốn chỉ định tên cột trong insert tuyên bố. Ngay cả khi bạn chỉ có hai cột đó, đó là một cách tốt để "chứng minh cho tương lai" mã của bạn.

  4. Lưu ý, tôi đã thay đổi điều này để tạo phản hồi JSON. Tôi làm điều đó vì nó giúp mã máy khách phân tích cú pháp và xử lý phản hồi dễ dàng hơn. Tôi sẽ để lại NSJSONSerialization cho bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tốt nhất để ngăn một người tạo nhiều tài khoản

  2. phpMyAdmin - không thể kết nối - cài đặt không hợp lệ - kể từ khi tôi thêm mật khẩu gốc - đã bị khóa

  3. Tham gia Laravel với 3 Bảng

  4. Chọn Cơ sở dữ liệu MySQL trên Linux qua Dòng lệnh

  5. Làm cách nào để đảm bảo an toàn cho kết nối cơ sở dữ liệu của tôi?