2013-07-19 44 views
0

好吧,我以爲我有這個,但我不明白爲什麼它不工作... 我有一個選擇與變量表,因此我的列(bind_result)將變量。 我需要調整回來任意數量的列,並獲取作爲關聯陣列,由於將有多個行回來:mysqli與未知的bind_results

// Get table data 
$mysqli = new mysqli('host','login','passwd','db'); 
if ($mysqli->connect_errno()) { $errors .= "<br>Cannot connect: ".$mysqli->connect_error()); } 
$stmt = $mysqli->prepare("SELECT * FROM ?"); 
$stmt->bind_param('s', $table); 
$stmt->execute(); 

// Get bind result columns 
$fields = array(); 
// Loop through columns, build bind results 
for ($i=0; $i < count($columns); $i++) { 
$fields[$i] = ${'col'.$i}; 
} 

// Bind Results 
call_user_func_array(array($stmt,'bind_result'),$fields); 

// Fetch Results 
$i = 0; 
while ($stmt->fetch()) { 
    $results[$i] = array(); 
    foreach($fields as $k => $v) 
    $results[$i][$k] = $v; 
    $i++; 
} 

// close statement 
$stmt->close(); 

任何想法是非常感謝^ _^

編輯:新代碼:

$mysqli = new mysqli('host','login','passwd','db'); 
if ($mysqli->connect_errno)) { $errors .= "<br>Cannot connect: ".$mysqli->connect_error()); } 
$stmt = "SELECT * FROM ".$table; 

if ($query = $mysqli->query($stmt)) { 
$results = array(); 
while ($result = $query->fetch_assoc()) { 
    $results[] = $result; 
} 
$query->free(); 
} 
$mysqli->close(); 
+0

你到底想幹什麼?最後的結局是什麼? – searsaw

+0

這是一個詳細頁面,用於顯示數據庫中的各種表格及其內容,以便於後臺編輯數據庫。 – Kaceykaso

+0

你是否收到錯誤或者只是沒有輸出? – searsaw

回答

1

您無法綁定表名稱。 Bind_param接受列名及其數據類型。

要使用表名動態地使用下面的代碼:

$stmt = $mysqli->prepare("SELECT * FROM ".$table); 
+0

那麼一切都好嗎?我認爲我仍然需要將結果綁定......? – Kaceykaso

+0

@Kaceykaso無需綁定表名稱。如果您使用列名稱,則可以綁定列名稱。 –

+0

好的,現在我感覺真的迷路了。我編輯了上面的代碼的代碼,但它仍然沒有通過。我覺得這幾乎是一字不差,他們有[這裏](http://php.net/manual/en/mysqli-result.fetch-assoc.php)... – Kaceykaso