[英]PHP pulls URL from MySQLi data table
我正在從數據庫中提取“名稱”和“網址”(這有效),但不幸的是,ping 提取的“網址”不起作用。
<tbody>
<?php
require_once "config/config.php";
$sql = "SELECT * FROM deployments";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){
echo "<tr>";
echo "<th>Deployment</th>";
echo "<th>URL</th>";
echo "<th>Status</th>";
echo "</tr>";
while($row = mysqli_fetch_array($result)){
echo "<tr>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['url'] . "</td>";
if($socket =@ fsockopen($sql = "SELECT url FROM deployments", 80, $errno, $errstr)) {
echo "<td><span class='badge badge-success'>LIVE</span></td>";
fclose($socket);
}
else {
echo "<td><span class='badge badge-danger'>DOWN</span></td>";
}
echo "</tr>";
}
// Free result set
mysqli_free_result($result);
} else{
echo "No records matching your query were found.";
}
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
?>
</tbody>
如果 ping 成功,標志位應顯示“LIVE”,如果無法執行 ping 操作,則標志位應顯示“DOWN”。
我明白你在做什么,但你只是在 fsockopen 函數中輸入一個字符串,你實際上並沒有在該字符串中執行 SQL。 您已經在運行相同查詢結果的循環,因此只需從行中選擇 URL 值並將其插入。
改變這個:
if($socket =@ fsockopen($sql = "SELECT url FROM deployments", 80, $errno, $errstr)) {
echo "<td><span class='badge badge-success'>LIVE</span></td>";
fclose($socket);
}
對此:
$url = $row['url'];
if($socket =@ fsockopen("'$url'", 80, $errno, $errstr)) {
echo "<td><span class='badge badge-success'>LIVE</span></td>";
fclose($socket);
}
或者:
$url = "'" . $row['url'] ."'";
if($socket =@ fsockopen($url, 80, $errno, $errstr)) {
echo "<td><span class='badge badge-success'>LIVE</span></td>";
fclose($socket);
}
我正在從數據庫中提取“名稱”和“網址”(這有效),但不幸的是,ping 提取的“網址”不起作用。
這實際上不是這段代碼在做什么:
$socket =@ fsockopen($sql = "SELECT url FROM deployments", 80, $errno, $errstr)
fsockopen
調用的結果分配給$socket
變量。@
,使拋出的錯誤靜音,因為$sql = "SELECT url FROM deployments"
沒有做你認為的那樣。 該語句將字符串SELECT url FROM deployments
分配給變量$sql
。 就這些。 在函數調用中使用它實際上將賦值的值(在這種情況下為真正的布爾值)傳遞給函數。$row['url']
傳遞給該函數。讓我明確一點:永遠不要在你的代碼中使用@。 從理論上講,人們可以為消除錯誤提供理由,但在實踐中,我從未見過一個案例,這不僅僅是程序員懶惰和/或不了解代碼的作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.