ОБНОВИТЬ мою sql таблицу, если "kooi" уже существует - PullRequest
0 голосов
/ 26 марта 2020

Я потратил пару дней, чтобы исправить свой код с помощью инструкции UPDATE. Я создаю приложение для iOS, и мой код INSERT работает нормально. Но теперь я также обновлю свою таблицу, когда "kooi" уже существует. Я также ищу INSERT и UPDATE в одном запросе, но не могу исправить это на себе. Я также новичок в этом мире (делаю iOS и SQL). Извините ....

Вот весь мой код ... извините за длинный код, но я думаю, что это лучший вариант.

DbOperation. php

<?php

class DbOperation
{
private $conn;

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

//Function to create a new user
public function createUser($kooi, $svogel, $eeneig, $eenuitg, $eenringd, $eenringnr, $tweeeig, $tweeuitg, $tweeringd, $tweeringnr, $drieeig, $drieuitg, $drieringd, $drieringnr, $viereig, $vieruitg, $vierringd, $vierringnr, $vijfeig, $vijfuitg, $vijfringd, $vijfringnr, $zeseig, $zesuitg, $zesringd, $zesringnr)
{
    if (!$this->isUserExist($kooi)) {
        $password = md5($pass);
        $stmt = $conn->prepare("INSERT INTO kweeklijsten (kooi, svogel, eeneig, eenuitg, eenringd, eenringnr, tweeeig, tweeuitg, tweeringd, tweeringnr, drieeig, drieuitg, drieringd, drieringnr, viereig, vieruitg, vierringd, vierringnr, vijfeig, vijfuitg, vijfringd, vijfringnr, zeseig, zesuitg, zesringd, zesringnr) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON DUPLICATE KEY UPDATE eeneig=?, eenuitg=?, eenringd=?, eenringnr=?, tweeeig=?, tweeuitg=?, tweeringd=?, tweeringnr=?, drieeig=?, drieuitg=?, drieringd=?, drieringnr=?, viereig=?, vieruitg=?, vierringd=?, vierringnr=?, vijfeig=?, vijfuitg=?, vijfringd=?, vijfringnr=?, zeseig=?, zesuitg=?, zesringd=?, zesringnr=?,"); 
        $stmt -> bind_param("ssssssssssssssssssssssssss",$_POST["eeneig"], $_POST["eenuitg"], $_POST["eenringd"], $_POST["eenringnr"], $_POST["tweeeig"], $_POST["tweeuitg"], $_POST["tweeringd"], $_POST["tweeringnr"], $_POST["drieeig"], $_POST["drieuitg"], $_POST["drieringd"], $_POST["drieringnr"], $_POST["viereig"], $_POST["vieruitg"], $_POST["vierringd"], $_POST["vierringnr"], $_POST["vijfeig"], $_POST["vijfuitg"], $_POST["vijfringd"], $_POST["vijfringnr"], $_POST["zeseig"], $_POST["zesuitg"], $_POST["zesringd"], $_POST["zesringnr"],);
        if ($stmt->execute()) {
            return USER_CREATED;
        } else {
            return USER_NOT_CREATED;
        }
    } else {
        return USER_ALREADY_EXIST;
    }
}

   private function isUserExist($kooi)
{
    $stmt = $this->conn->prepare("SELECT id FROM kweeklijsten WHERE kooi = ? ");
    $stmt->bind_param("s", $kooi);
    $stmt->execute();
    $stmt->store_result();
    return $stmt->num_rows > 0;
}
}

И другой мой файл: RegisterKWEEK. php

<?php

//importing required script
require_once 'DbOperationKWEEK.php';

$response = array();

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (!verifyRequiredParams(array('kooi', 'svogel'))) {
    //getting values
    $kooi = $_POST['kooi'];
    $svogel = $_POST['svogel'];
    $eeneig = $_POST['eeneig'];
    $eenuitg = $_POST['eenuitg'];
    $eenringd = $_POST['eenringd'];
    $eenringnr = $_POST['eenringnr'];
    $tweeeig = $_POST['tweeeig'];
    $tweeuitg = $_POST['tweeuitg'];
    $tweeringd = $_POST['tweeringd'];
    $tweeringnr = $_POST['tweeringnr'];
    $drieeig = $_POST['drieeig'];
    $drieuitg = $_POST['drieuitg'];
    $drieringd = $_POST['drieringd'];
    $drieringnr = $_POST['drieringnr'];
    $viereig = $_POST['viereig'];
    $vieruitg = $_POST['vieruitg'];
    $vierringd = $_POST['vierringd'];
    $vierringnr = $_POST['vierringnr'];
    $vijfeig = $_POST['vijfeig'];
    $vijfuitg = $_POST['vijfuitg'];
    $vijfringd = $_POST['vijfringd'];
    $vijfringnr = $_POST['vijfringnr'];
    $zeseig = $_POST['zeseig'];
    $zesuitg = $_POST['zesuitg'];
    $zesringd = $_POST['zesringd'];
    $zesringnr = $_POST['zesringnr'];

    //creating db operation object
    $db = new DbOperation();

    //adding user to database
    $result = $db->createUser($kooi, $svogel, $eeneig, $eenuitg, $eenringd, $eenringnr, $tweeeig, $tweeuitg, $tweeringd, $tweeringnr, $drieeig, $drieuitg, $drieringd, $drieringnr, $viereig, $vieruitg, $vierringd, $vierringnr, $vijfeig, $vijfuitg, $vijfringd, $vijfringnr, $zeseig, $zesuitg, $zesringd, $zesringnr);

    //making the response accordingly
    if ($result == USER_CREATED) {
        $response['error'] = false;
        $response['message'] = 'Kweeklijst is succesvol toegevoegd.';
    } elseif ($result == USER_ALREADY_EXIST) {
        $response['error'] = true;
        $response['message'] = 'Kweeklijst bestaat al.';
    } elseif ($result == USER_NOT_CREATED) {
        $response['error'] = true;
        $response['message'] = 'Er is een fout opgetreden! ';
    }
} else {
    $response['error'] = true;
    $response['message'] = 'Verplichte velden zijn niet ingevuld.';
}
} else {
$response['error'] = true;
$response['message'] = 'Ongeldig verzoek';
}

//function to validate the required parameter in request
function verifyRequiredParams($required_fields)
{

//Getting the request parameters
$request_params = $_REQUEST;

//Looping through all the parameters
foreach ($required_fields as $field) {
    //if any requred parameter is missing
    if (!isset($request_params[$field]) || strlen(trim($request_params[$field])) <= 0) {

        //returning true;
        return true;
    }
}
return false;
}

echo json_encode($response);

Надеюсь, кто-нибудь сможет помогите мне с этим, потому что это последняя вещь для приложения! Спасибо всем! Хорошего дня!

...