Проверить класс объекта

Я пытаюсь проверить, действительно ли функция вставлялась в базу данных и возвращала сообщение.

class.php

<?php 
class Database {
    var $host = "localhost";
    var $user = "root";
    var $pass = "";
    var $db = "vjezba";

    public function spajanje() {
        $con=mysqli_connect($this->host,$this->user,$this->pass,$this->db); 
        return $con;
    }
    public function napravi_insert($imeTablice,$ime,$prezime) {
        $conn=$this->spajanje();
        mysqli_query($conn,"insert into $imeTablice values('','".$ime."','".$prezime."')");
    }
}

index.php

    <?php 
    include "klase.php";

    $radnja = new Database();
    //use extract method so no need to call $_POST again and again
    extract($_POST);

    if (isset($save)) {
        $imeTablice = "admin2";
        $radnja->napravi_insert($imeTablice,$ime,$prezime);
        //echo "Done!";

/* I am trying to make something like this */
        if ($radnja->napravi_insert == TRUE) {
            echo "Done!";
        } else {
            echo "Error!";
        }
/* // / / / // */

    }

Как я могу превратить объекты в переменные и проверить, "успех" или "ошибка"?

Начиная с выпуска php 5.0.0 (в 2004 г.), вы не должны использовать ключевое слово var. Ваш учебник может быть немного древним. Также ваш код уязвим для SQL-инъекций.

tereško 01.06.2018 12:15

@ tereško хорошо, что вы предлагаете вместо ключевого слова var?

Pablo 01.06.2018 12:16
secure.php.net/manual/en/language.oop5.visibility.php ... также, в качестве примечания (вы действительно должны писать код на английском языке): commitstrip.com/en/2015/08/21/…
tereško 01.06.2018 12:16

@ tereško Спасибо. Хорошая история, я сделаю это (сначала я пытаюсь печатать на хорватском языке из-за понимания ООП.) :)

Pablo 01.06.2018 12:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вам нужно вернуть результат функции msqli_query:

public function napravi_insert($imeTablice,$ime,$prezime) {
    $conn=$this->spajanje();
    $insert_state = mysqli_query($conn,"insert into $imeTablice values('','".$ime."','".$prezime."')");
    return $insert_state !== false;
}

Итак, ваш код выглядит следующим образом:

class.php

<?php 
class Database {
    private $host = "localhost";
    private $user = "root";
    private $pass = "";
    private $db = "vjezba";

    public function spajanje() {
        return mysqli_connect($this->host, $this->user, $this->pass, $this->db);
    }

    public function napravi_insert($imeTablice, $ime, $prezime) {
        $conn = $this->spajanje();
        $insert_state = mysqli_query($conn, "INSERT INTO $imeTablice VALUES ('','".$ime."','".$prezime."')");
        return $insert_state !== false;
    }
}

index.php

include "klase.php";

$radnja = new Database();

//use extract method so no need to call $_POST again and again
extract($_POST);

if (isset($save)) {
    $imeTablice = "admin2";

    if ($radnja->napravi_insert($imeTablice, $ime, $prezime) === true) {
        echo "Done!";
    } else {
        echo "Error!";
    }
}

Я хотел бы принять 2 ответа, я сделал это как ответ @ MH2K9, потому что я думаю, что это будет отличная идея, чтобы все работало :) В любом случае спасибо

Pablo 01.06.2018 12:28
Ответ принят как подходящий

Статус первого запроса возврата из метода napravi_insert

public function napravi_insert($imeTablice,$ime,$prezime) {
    $conn=$this->spajanje();
    return mysqli_query($conn,"insert into $imeTablice values('','".$ime."','".$prezime."')");
}

Затем сравните возвращаемое значение метода napravi_insert

$insert_status = $radnja->napravi_insert($imeTablice,$ime,$prezime);
if ($insert_status == TRUE) {
    echo "Done!";
} else {
   echo "Error!";
}

Надеюсь, что это поможет вам.

Спасибо, у меня получилось вот так. :)

Pablo 01.06.2018 12:22

мне нужен return $insert_status; после проверки?

Pablo 01.06.2018 12:30

Нет, не совсем.

alamincse07 01.06.2018 12:31

Другие вопросы по теме