Я пытаюсь проверить, действительно ли функция вставлялась в базу данных и возвращала сообщение.
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!";
}
/* // / / / // */
}
Как я могу превратить объекты в переменные и проверить, "успех" или "ошибка"?
@ tereško хорошо, что вы предлагаете вместо ключевого слова var?
@ tereško Спасибо. Хорошая история, я сделаю это (сначала я пытаюсь печатать на хорватском языке из-за понимания ООП.) :)






Вам нужно вернуть результат функции 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, потому что я думаю, что это будет отличная идея, чтобы все работало :) В любом случае спасибо
Статус первого запроса возврата из метода 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!";
}
Надеюсь, что это поможет вам.
Спасибо, у меня получилось вот так. :)
мне нужен return $insert_status; после проверки?
Нет, не совсем.
Начиная с выпуска php 5.0.0 (в 2004 г.), вы не должны использовать ключевое слово
var. Ваш учебник может быть немного древним. Также ваш код уязвим для SQL-инъекций.