была аналогичная тема (How to access mysqli connection in another class on another page?), но она не совсем отвечает на мой вопрос, или мне не хватает смысла. Я пытаюсь создать класс, который позволит мне быстро создать кости слайд-шоу, вытаскивая набор URL-адресов изображений и div-идентификаторов из базы данных. Вот что мне удалось:Запуск инструкции по подготовке mysqli внутри моего собственного класса
class make_slide
{
private $slide_mysqli;
public $get_slide;
public $single_slide;
public $get_imgurl1;
public $get_imgurl2;
public $get_imgurl3;
public $get_imgurl4;
public $get_imgurl5;
public $get_imgid1;
public $get_imgid2;
public $get_imgid3;
public $get_imgid4;
public $get_imgid5;
function __construct(){
$this->slide_mysqli = new mysqli('localhost','user', 'password','database') or die($this->mysqli->error);
}
function get_slides ($page)
{
if ($this->get_slide = $this->slide_mysqli->prepare('SELECT IMAGE_URL1, IMAGE_URL2, IMAGE_URL3, IMAGE_URL4, IMAGE_URL5, IMAGE_ID1, IMAGE_ID2, IMAGE_ID3, IMAGE_ID4, IMAGE_ID5 FROM Page WHERE ID=? AND IMAGE_URL1 != NULL'))
{
$this->get_slide->bind_param('s', $page);
$this->get_slide->bind_result($this->get_imgurl1, $this->get_imgurl2, $this->get_imgurl3, $this->get_imgurl4, $this->get_imgurl5, $this->get_imgid1, $this->get_imgid2, $this->get_imgid3, $this->get_imgid4, $this->get_imgid5);
$this->get_slide->execute();
$this->get_slide->store_result();
$this->get_slide->fetch();
$this->get_slide->free_result();
$this->get_slide->close();
}
//print the slideshow out here... for example
print '<br><img src="http://***.com/'.$this->get_imgurl1.'" alt="'.$this->get_imgid1.'" height="200"/></div>';
print '<br><img src="http://***.com/'.$this->get_imgurl1.'" alt="'.$this->get_imgid2.'" height="200"/></div>';
}
}
так что теперь, если я запускаю следующий, класс будет делать всю работу за меня:
$slide = new make_slide();
$slide->get_slides('home');
только это печать изображения, но не обращая внимания на вещи, I» вытащили из базы данных. проверить журналы ошибок, и я сказал
PHP Примечание: Использование неопределенная константа IMAGE_ID5 - предполагается 'IMAGE_ID5' в/вар/WWW// .com/httpdocs/index.php по линии 216, реферер: Http: //***.com/index.php
пожалуйста, любые подсказки относительно того, что я делаю неправильно?
Какая из них - линия 216? – str
Многомерный массив сделал бы вашу жизнь немного легче, я думаю. – jeroen
Ошибочный код не может быть тем, что вы разместили здесь. Причиной «неопределенного константы IMAGE_ID5» будет, скорее всего, переменная, у которой отсутствует ее '$', но единственное место, которое строка появляется в приведенном выше коде, находится внутри строки оператора SQL, где она не будет анализироваться как константа. –