[英]Grab data from a query
我正在嘗試學習PHP,為此,我嘗試創建一個URL縮短器。 現在,您當前可以輸入一個鏈接並將其輸入數據庫。 它不會隨機化字符串,但是我將在之后進行。 (我自己更改了它們,以避免遇到問題)。
這是我的當前表格(我的表格稱為“網址”):
然后,當您轉到(對我來說是本地主機)/ somepath時,它會自動重定向到/process.php?id=somepath
在process.php中,它檢查指定的路徑(somepath)是否存在於數據庫中,然后獲取其原始值。 我遇到的問題是獲取原始值。 同樣,我是PHP新手,在理解查詢的工作方式時遇到了麻煩。
$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
如何從$ result獲取信息? 還是我應該在$ result之后從$ query獲取它,因為它基本上可以運行它?
請解釋為什么您使用什么,我不理解這一點。
謝謝,抱歉,如果這是一個非常愚蠢的問題。
在這段代碼中,我使用了object oriented approach
來prepared statement
或者,如果您仍然處於procedural style
,那么仍然可以使用它。
檢查此鏈接: http : //php.net/manual/en/mysqli.prepare.php
因此,基本上,這段代碼中發生的事情是正在准備查詢,然后綁定要使用的參數(這種樣式是避免SQL注入的一種方法,因為輸入會自動轉義)。 結果將首先存儲在變量$original
然后計算查詢返回的行數。 如果大於1,則表示存在匹配項;如果大於0,則沒有匹配項。
如果存在匹配項,它將回顯變量$original
的值。
<?php
$stmt = $conn -> prepare("SELECT original FROM urls WHERE new = ?");
$stmt -> bind_param('s',$new);
$stmt -> execute();
$stmt -> bind_result($original);
$stmt -> fetch();
$stmt -> store_result();
$res = $stmt -> num_rows();
$stmt -> close();
if($res > 0){
echo $original;
}
else{
//not found
}
?>
$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
$rows = mysql_fetch_array($result);
foreach($rows as $row){
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
您可以使用mysql_fetch_array
或mysql_fetch_assoc
獲取抓取結果
使用fetch_assoc()
在面向對象的MySQLi中從表中獲取數據。
嘗試這個:
$query = "SELECT original FROM urls WHERE new = '$new'";
$result = $conn->query($query);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
您還可以將結果放入HTML表中:
if ($result->num_rows > 0) {
echo "<table><tr><th>ID</th><th>Name</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.