2016-04-02 2 views
0

мне нужно запросить таблицу в ассоциативном массиве, используя одноплодное соединение с базой данных и ошибки при получении IM,сбор результата MySQL запроса из таблицы

Примечания: Undefined переменный: идентификатор в C: \ XAMPP \ HTDOCS \ SOBCASHIER \ ресурсов \ шаблоны \ loginmodel.php на линии 10

Примечание: Undefined переменной: имя в C: \ XAMPP \ HTDOCS \ SOBCASHIER \ Resources \ Templates \ loginmodel.php на линии 10

Извещение: Undefined переменной: LOC в C : \ xampp \ htdocs \ SOBCASHIER \ resources \ templates \ loginmodel.php в строке 10

Предупреждение: mysqli_stmt :: выборки() ожидает, что именно 0 параметры, 3 приведены в C: \ XAMPP \ HTDOCS \ SOBCASHIER \ ресурсы \ Шаблоны \ loginmodel.php на линии 10

Примечание: Массив для преобразования строки в C: \ XAMPP \ HTDOCS \ SOBCASHIER \ Resources \ Templates \ loginmodel.php на линии 12 Массив

мой db.config.php

define ('HOST','localhost'); 
define ('USER','garodamas_mon'); 
define ('PASSWORD','r0d4m45'); 
define ('DATABASE','garodamas_cashrcv'); 

class Database{ 
    private $DBH; 
    private static $singleton; 
    protected function __construct(){ 
     $this->DBH=new mysqli(HOST,USER,PASSWORD,DATABASE); 
    } 
    public static function instance(){ 
     if (!(self::$singleton instanceof self)) { 
      self::$singleton = new self(); 
     } 
     return self::$singleton; 
    } 
    public static function get(){ 
     return self::instance()->DBH; 
    } 
    private function __wake(){} 
    private function __clone(){} 
} 

и мой loginmodel.php

<?php 
require_once '../db.config.php'; 


$get=Database::get()->prepare('SELECT user_id, user_name, user_dept FROM mst_user'); 
$get->execute(); 
$row = array(); 

$get->fetch($id, $name, $loc); 
     while($get->fetch()){ 
      print($row); 
     } 

Я не знаю, где моя ошибка. mst_user имеет 3 столбца. Пожалуйста, помогите мне .. спасибо

+1

'SHOW *' создать проблему было бы 'SELECT *' – Saty

ответ

1

Оператор prepare() возвращает false, потому что есть ошибка.

mysqli_prepare() возвращает объект оператора или FALSE, если произошла ошибка.

Попробуйте

new mysqli(HOST,USER,PASSWORD,DATABASE)->prepare('badsql')->execute(); 

А затем зафиксировать badsql.

1
require_once '../db.config.php'; 

$get=Database::get()->prepare('SELECT user_id, user_name, user_dept FROM mst_user'); 
$get->execute(); 

с PDO:

while ($row = $get->fetch(PDO::FETCH_NUM)) { 
     $data = $row[0] . "\t" . $row[1] . "\t" . $row[2] . "\n"; 
     print $data; 
     } 

С Mysqli:

$get->bind_result($id,$name,$loc); 
while ($get->fetch()) { 
     print ($id, $name, $code); 
    } 
+0

им с помощью mysqli не PDO –

+0

@ KonzMama, я отредактировал свой ответ, я думаю, вы забыли привязать переменные результата в Mysqli – Amir

Смежные вопросы