我想了解這兩行代碼之間有什麼區別。兩者有什麼區別? (查詢選擇和顯示結果)
我有兩頁ACR.php
和webPage1.php
。包含在我需要建立數據庫連接的任何頁面上的ACR.php
。目標是從數據庫中獲取值並將其顯示在網頁上。呼應$result1
當
// ACR.php //
<?php
// Est. Connection
$dbc = mysqli_connect($ACR_host, $ACR_user, $ACR_pass, $ACR_tablename)
or die('Error communicating to MySQL server');
// Select value from row in table
$thisPort = $dbc->query("SELECT activePort FROM table1 ")->fetch_row()[0];
// Select value from row in table
$thatPort = "SELECT activePort FROM table1";
// Displays result
$result1 = mysqli_query($dbc, $thisPort);
$result2 = mysqli_query($dbc, $thatPort);
?>
webpage1.php
不會顯示正確的值,而是回聲'result not found'
。
// webPage1.php //
<?php include 'ACR.php';?>
<!--html-->
<tr>
<th>Port<span id="portDisplay"></span><sup></sup>:</th>
<td id="showPort" style="text-align:left;width:75%;">
<?php
session_start();
if (mysqli_num_rows($result1) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result1)) {
echo " " . $row["activePort"];
// echo $row;
}
} else {
echo "result not found";
}
mysqli_close($dbc);
?>
</td>
</tr>
然而,如果我在$result2
,從數據庫表中的正確值顯示回聲。
這是爲什麼?是什麼讓這個如此呢?是不是$thisPort
和$thatPort
都調用表中的同一行?
更新:我使用$thisPort
,部分取得本地和遠程地址時。所以我寧願使用$thisPort
的當前語法,因爲它的工作原理,但將其更改爲$thatPort
的語法會使頁面崩潰。爲什麼在使用這種方法時可以從數據庫中提取值,但是當我需要在頁面上顯示端口時,則不能。
如果我不需要,我不想啓動一個額外的變量($thatPort
),以便在原始變量($thatPort
)應該並且已經執行此操作時簡單地回顯數據庫中的值。
在附註中,''session_start();'應該在你迴應(發送)任何東西之前調用,否則你會得到有關標題的錯誤。請參閱http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php –
我沒有在回聲之前調用'session_start()'? (請參閱'webPage1.php')或者您指的是'ACR.php'?我沒有在'ACR.php'上回顯任何內容。 – JustADrone
您正在發送html代碼(表格行和單元格)。如果您在呼叫session_start之前回顯,打印,發送或修改標題,它將會失敗。只是側面說明,你可以忽略和等待,直到你遇到問題,或者你可以與我爭論。 –