Есть метод поиска
<form class="navbar-form navbar-left" role="search" method="POST">
<div class="form-group">
<input class="form-control" placeholder="Search" name="search" type="text">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
далее методом search я получаю из поста данные
public function search ()
{
if (isset( $_POST['search'] )?$_POST['search']:null) {
print_r ( $_POST );
$text = self::protect ( $_POST['search'] );
$search = new newsModel();
$this->data['search'] = $search->search ( $text );
$this->render ( 'search' );
}
}
модель:
public function search($text)
{
$text=$this->db->escape($text);
$result=$this->db->query("SELECT * FROM $this->table WHERE `title` LIKE '$text%'");
return $result;
}
Class db:
class DB
{
private static $connection;
public static function getInstance(){
if (self::$connection===null){
self::$connection=new \mysqli( DB_HOST, DB_USER, DB_PASS, DB_NAME );
self::$connection->query ('SET NAMES UTF8');
if (self::$connection->errno){
die("Error while connect to MySql");
}
}
return self::$connection;
}
private function __clone() { //запрещаем клонирование объекта модификатором private
}
protected function __wakeup(){
}
public function __construct ()
{
$this->db=DB::getInstance ();
}
/**
* @param $sql
* @return array|bool|\mysqli_result
*/
public function query ($sql)
{
$result = $this->db->query ( $sql );
if (is_bool ( $result )) {
return $result;
}
$data = [];
while ($row = mysqli_fetch_assoc ( $result )) {
$data[] = $row;
}
if (!$data) {
return false;
}
return $data;
}
/**
* protect for sql injection
* @param $value
* @return string
*/
public function escape ($value)
{
return $this->db->real_escape_string ( $value );
}
метод search вызывается в методе render
protected function render($templateName)
{
$data = $this->data;
$message = $this->message;
$data['menu']=self::getCat();
self::search();
ob_start();
//динамический контент
$render = SITE_DIR . DS . 'View' . DS . $this->name . DS . $templateName . '.php';
if ($render) {
include($render);
}
$content = ob_get_clean();
include SITE_DIR . DS . 'View' . DS . 'Layout' . DS . $this->layout . '.php';
}
public static function protect($text)
{
$text = trim($text);
$text = strip_tags($text);
return $text;
}
Когда я посылаю запрос, отсылается много запросов и выдает ошибку "fatal error Allowed memory size".
"he" это мой запрос. Данные я могу получить, но они так само будут зацикленно выводиться, пока память не закончится.
Все остальное работает нормально только с поиском.
Вот таким кодом вставляю в базу новые записи, когда в значениях любой из переменной есть кавычки они без экранирования вставляются в базу,...
Всем привет, не понимаю как правильно сделать фильтр товаров по свойствамУ меня yii2 advanced! В фильтре хочу вывести хотя бы примитивное что бы понять...