2013-08-01 7 views
0

С первым набором кода я могу распечатать массив, однако второй абзац предназначен для хранения массива в переменной, но это не работает никаких предложений? массив пуст?Массив, не заполненный записями

$stmt = $conn->prepare("SELECT admin_name FROM adminuser_tbl"); 
    if ($stmt->execute()) { 
     while ($row = $stmt->fetch()) { 
    print_r($row); 
    } 
    } 

Не работает под

$stmt = $conn->prepare("SELECT admin_name, adminuser_id FROM adminuser_tbl"); 
     if ($stmt->execute()) { 
      $user_list = array(); 
    while ($row = $stmt->fetch()) { 
      $user_list[$row->adminuser_id] = $row->admin_name; 
    } 
    } 

Если распечатать результаты массива из первого абзаца, все они установлены на [0] ???

Array ([admin_name] => User1 [0] => User1) Array ([admin_name] => User2 [0] => User2) Array ([admin_name] => User3 [0] => User3) Array ([admin_name] => User4 [0] => User4) 
+0

PDO? режим выборки? ошибки? – Virus721

+1

Btw это '$ result = $ stmt-> execute()' и '$ result-> fetch()'. Прочитайте документацию о том, что вы используете перед публикацией, пожалуйста. – Virus721

+0

PDO Да, ошибки не возникают, в php. – Tom

ответ

2

Вам нужно установить режим выборки, если вы хотите получить строки в качестве объекта. По умолчанию используется PDO::FETCH_BOTH, который дает вам массив с целыми и именованными ключами. (Смотрите print_r выход)

$stmt = $conn->prepare("SELECT admin_name, adminuser_id FROM adminuser_tbl"); 
if ($stmt->execute()) { 
    $stmt->setFetchMode(PDO::FETCH_OBJ); 
    $user_list = array(); 
    while ($row = $stmt->fetch()) { 
     $user_list[$row->adminuser_id] = $row->admin_name; 
    } 
} 

Или просто использовать цикл Еогеаспа, поскольку PDOStatement реализует проходимую интерфейс.

$stmt = $conn->prepare("SELECT admin_name, adminuser_id FROM adminuser_tbl"); 
if ($stmt->execute()) { 
    $stmt->setFetchMode(PDO::FETCH_OBJ); 
    $user_list = array(); 
    foreach ($stmt as $row) { 
     $user_list[$row->adminuser_id] = $row->admin_name; 
    } 
} 

Для других режимов начнут извлекать посмотреть здесь: pdo.constants

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