2013-05-17 215 views
1

我是mysqli的新手,我試圖向HTML表格輸出一個簡單的查詢。 我得到三個空白單元格返回,但沒有任何內容。mysqli查詢返回無結果

我試着環顧這裏找到這個,也許我的搜索技能沒有達到標準,所以要麼沒有人卡在這裏,要麼我不能搜索蹲下! 無論如何,這是我的代碼:

<?php 
$mysqli = new mysqli("localhost", "webuser", "mysecretpassword", "userdb"); 

/* check connection */ 
if ($mysqli->connect_errno) 
{ 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

/* Select queries return a resultset */ 
if ($result = $mysqli->query("select first_name, last_name, last_activity_date from users order by first_name")) 
{ 
    $finfo = $result->fetch_fields(); 
    foreach ($finfo as $val) 
    { 
     echo "<tr>\n"; 
     echo "<td>$val->first_name</td>\n"; 
     echo "<td>$val->last_name</td>\n"; 
     echo "<td>$val->last_activity_date</td>\n"; 
     echo "</tr>\n"; 
    } 
    $result->close(); 
} 

$mysqli->close(); 

?> 

雖然我已經看到了用printf()我不熟悉它的語法其他的例子,因爲我不習慣於使用C型printf,因爲我曾用回聲風格先前在我的舊數據庫事務。

任何幫助在這裏非常感謝。謝謝!

+0

在你的'$ val-> prop'周圍使用'{...}' – bwoebi

+0

如果你不確定如何打印一個值,你總是可以嘗試var_dump($ val) – tomsv

+0

使用fecth_object而不是fetch_fields http:/ /br.php.net/manual/en/mysqli-result.fetch-object.php –

回答

2

試試這個

foreach ($finfo as $val) 
{ 
    echo "<tr>\n"; 
    echo "<td>" . $val->first_name . "</td>\n"; 
    echo "<td>" . $val->last_name . "</td>\n"; 
    echo "<td>" . $val->last_activity_date . "</td>\n"; 
    echo "</tr>\n"; 
} 
+1

連接字符串沒有區別我得到標題和三個空白行。我應該返回大約72行。該查詢從mysql提示符起作用。 –

2
if ($result = $mysqli->query("select first_name, last_name, last_activity_date from worker order by first_name")) 
{ 
    while ($val = $result->fetch_object()) 
    { 
     echo "<tr>\n"; 
     echo "<td>" . $val->first_name . "</td>\n"; 
     echo "<td>" . $val->last_name . "</td>\n"; 
     echo "<td>" . $val->last_activity_date . "</td>\n"; 
     echo "</tr>\n"; 
    } 
    $result->close(); 
} 
+0

這似乎有所作爲,當我使用舊的mysql連接器時,我總是使用foreach方法輸出數據。不知道爲什麼這有所作爲。但第一種方法,我認爲你是正確的,它返回三個空白行的事實表明,它只是返回了我選擇的三列。感謝你的幫助! –

0

這不是在foreach或while循環,fetch_fields不返回查詢結果,但對查詢結果的列的元數據(如名稱,長度,類型等)

由於未定義此對象成員,因此您還應該在$val->first_name上得到PHP警告。