[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите решить проблему с предупреждением
zullbatol
Помогите решить проблему
public static function getList( $numRows=1000000, $order="publicationDate DESC" ) {
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles ORDER BY " . mysqli_real_escape_string($order) . " LIMIT :numRows";

$st = $conn->prepare( $sql );
$st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
$st->execute();
$list = array();

while ( $row = $st->fetch() ) {
$article = new Article( $row );
$list[] = $article;
}
ошибка

Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /Applications/MAMP/htdocs/cms/classes/Article.php on line 102
sergeiss
Цитата (zullbatol @ 12.11.2014 - 02:00)
Помогите решить проблему
...
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /Applications/MAMP/htdocs/cms/classes/Article.php on line 102

Ну так ты переведи для начала, о какой именно проблеме тебе сообщает система! Если не знаешь английский, то учи. Быть программистом и не знать английский - не получится. Для начала, для перевода ошибки, можешь использовать translate.google.ru

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
TMake
почитай внимательно доку http://php.net/manual/ru/mysqli.real-escape-string.php
zullbatol
Не ну что предлагает проблема мне ясно, я не могу понять как её решить. Мне не понятно где брать второй параметр.


<?php

/**
* Класс для обработки статей
*/


class Article
{
// Свойства

/**
*
@var int ID статей из базы данных
*/

public $id = null;

/**
*
@var int Дата первой публикации статьи
*/

public $publicationDate = null;

/**
*
@var string Полное название статьи
*/

public $title = null;

/**
*
@var string Краткое описание статьи
*/

public $summary = null;

/**
*
@var string HTML содержание статьи
*/

public $content = null;


/**
* Устанавливаем свойства с помощью значений в заданном массиве
*
*
@param assoc Значения свойств
*/


public function __construct( $data=array() ) {
if ( isset( $data['id'] ) ) $this->id = (int) $data['id'];
if ( isset( $data['publicationDate'] ) ) $this->publicationDate = (int) $data['publicationDate'];
if ( isset( $data['title'] ) ) $this->title = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['title'] );
if ( isset( $data['summary'] ) ) $this->summary = preg_replace ( "/[^\.\,\-\_\'\"\@\?\!\:\$ a-zA-Z0-9()]/", "", $data['summary'] );
if ( isset( $data['content'] ) ) $this->content = $data['content'];
}


/**
* Устанавливаем свойств с помощью значений формы редактирования записи в заданном массиве
*
*
@param assoc Значения записи формы
*/


public function storeFormValues ( $params ) {

// Сохраняем все параметры
$this->__construct( $params );

// Разбираем и сохраняем дату публикации
if ( isset($params['publicationDate']) ) {
$publicationDate = explode ( '-', $params['publicationDate'] );

if ( count($publicationDate) == 3 ) {
list ( $y, $m, $d ) = $publicationDate;
$this->publicationDate = mktime ( 0, 0, 0, $m, $d, $y );
}
}
}



/**
* Возвращаем объект статьи соответствующий заданному ID статьи
*
*
@param int ID статьи
*
@return Article|false Объект статьи или false, если запись не найдена или возникли проблемы
*/


public static function getById( $id ) {
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles WHERE id = :id";
$st = $conn->prepare( $sql );
$st->bindValue( ":id", $id, PDO::PARAM_INT );
$st->execute();
$row = $st->fetch();
$conn = null;
if ( $row ) return new Article( $row );
}

/*
* Возвращает все или диапазон объектов статей в базе данных
* @param int Optional - Количество строк( по умолчанию все)
* @param string Optional - Столбец по которому производится сортировка статей по умолчанию "publicationDate DESC")
* @return array|false двух элементный массив: results => массив, список объектов статей; totalRows=>общее количество статей
*/


public static function getList( $numRows=1000000, $categoryId=null, $order="publicationDate DESC" ) {
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM articles ORDER BY "
. mysqli_real_escape_string($order) . " LIMIT :numRows";

$st = $conn->prepare( $sql );
$st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
$st->execute();
$list = array();

while ( $row = $st->fetch() ) {
$article = new Article( $row );
$list[] = $article;
}

/*
*Получае общее количество статей, которые сответствуют критерию
*/


$sql= "SELECT FOUND_ROWS() AS totalRows";
$totalRows =$conn->query($sql)->fetch();
$conn = null;
return (array("results"=>$list, "totalRows"=>$totalRows[0]));
}

/*
*Вставляем текущий объект статьи в базу данных, устанавливаем его свойства.
*/


public function insert(){
//Есть у объекта стьи ID?
if (!is_null($this->$id))trigger_error ("Article::insert()Attempt to update an Article object that does not have its ID property set.",E_USER_ERROR);

// Вставляем статью
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "INSERT INTO articles ( publicationDate, title, summary, content ) VALUES ( FROM_UNIXTIME(:publicationDate), :title, :summary, :content )";
$st = $conn->prepare ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":title", $this->title, PDO::PARAM_STR );
$st->bindValue( ":summary", $this->summary, PDO::PARAM_STR );
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->execute();
$this->id = $conn->lastInsertId();
$conn = null;
}


/**
* Обновляем текущий объект статьи в базе данных
*/


public function update() {

// Есть ли у объекта статьи ID?
if ( is_null( $this->id ) ) trigger_error ( "Article::update(): Attempt to update an Article object that does not have its ID property set.", E_USER_ERROR );


//обновляем статью

$conn = new PDO(DB_DSN, DB_USERNAME, DB_PASSWORD);
$sql = "UPDATE article SET publicationDate = FROM_UNIXTIME (:publicationDate),title=:title,summary=:summary,content=:conten WHERE id=:id";
$st = $conn->prepare ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":title", $this->title, PDO::PARAM_STR );
$st->bindValue(":summary", $this->summary, PDO::PARAM_STR);
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->bindValue( ":id", $this->id, PDO::PARAM_INT );
$st->execute;
$conn =null;



}
/**
* Удаляем текущий объект статьи из базы данных
*/

public function delete() {
//Есть ли у страницы ID?
if(is_null($this->id)) trigger_error("Article::delete(): Attempt to delete an Article object that does not have its ID property set.", E_USER_ERROR );
//удаляем статью
$conn = new PDO(DB_DSN,DB_USERNAME,DB_PASSWORD);
$st = $conn->prepare("DELERE FROM articles WHERE id = :id LIMIT 1");
$st->bindValue(":id",$this->id, PDO::PARAM_INT);
$st->execute;
$conn = null;
}
}



?>


PS от sergeiss: пользуйся тэгами оформления кодов, чтобы они "подсвечивались".
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.