piszę klasę do walidacji i obsługi formularzy
niestety działanie funkcji mysqli_real_escape_string nie działa
Cytat
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, string given in ... on line 20
oto kod pliku do połączenia z bazą danych:
<?php
DEFINE ('DB_HOST', 'localhost'); DEFINE ('DB_NAME', 'comicsite');
@$db = new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME);
if (mysqli_connect_errno()) {
echo 'Error: Connection with database failed (';
switch (mysqli_connect_errno()) {
case 2005:
break;
case 1045:
echo 'bad login or password'; break;
case 1049:
echo 'bad database name'; break;
}
}
?>
oto kod pliku który po wysłaniu formularza zwraca błąd:
<?php
include('../../mysqli.php');
class text {
var $data;
function __construct($dat) {
$this->data = $dat;
}
function EscapeData () {
}
return mysqli_real_escape_string($this->data, $db);
}
function CheckData () {
if (empty($this->data)) { return FALSE;
} else {
return $this->EscapeData();
}
}
}
if (isset($_POST['submit'])) {
$poll = new text($_POST['test']);
if ( $poll->CheckData() ) {
} else {
}
}
?>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" size="20" name="test">
<br />
<input type="submit" value="send" name="submit">
</form>
o ile się nie mylę to źle się odwołuję do zmiennej $db wewnatrz klasy..