[英]Querying database with php
我試圖使用php查詢數據庫,然后顯示查詢結果。 對於此示例,我只想要MySQL數據庫中的元素數。
我的代碼是:
<?php
print("This is just a test");
print("This is another test");
// Create connection
$con=mysqli_connect("mysql.netsons.com","****","****","****");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
print("A third test");
$result = mysqli_query($con, "SELECT COUNT(*) FROM MyGames");
echo $result;
echo mysqli_fetch_array($result);
print("A forth test");
mysqli_close($con);
?>
結果如下:
This is just a testThis is another testA third test
我究竟做錯了什么?
mysql_fetch_array
獲取...一個數組。
$row = mysqli_fetch_array($result);
echo $row["COUNT(*)"];
我認為也最好為該列起別名:
SELECT COUNT(*) AS count FROM MyGames
...
echo $row['count'];
我建議使用一種更安全的查詢方法(據我所知,無需擔心SQL注入),這樣可以節省大量的時間和空間。
首先,您需要創建一個mysqli對象
$stateConnect = new mysqli("localhost", "root", "PASS", "DBTable");
這樣做與mysqli_connect
和mysqli_select_db
相同
然后您要定義您的SQL查詢
$sql = "SELECT `userVotes` FROM `users` WHERE `userEmail`=?";
接下來,您要創建一個稱為語句的變量,並在其中“附加” SQL
$statement = $stateConnect->prepare($sql);
請注意,在我的SQL中,我沒有直接輸入userEmail所需的值,而是輸入了“?”。 它充當我們稍后定義的變量(但是始終為'?'
要定義此變量,我們需要使用。
$statement->bind_param('s', $SESSION['email']);
這會將$SESSION['email']
綁定到第一個問號, s
表示第一個問號將是一個字符串。 可以說我們不得不變脆:
$sql = "SELECT `userVotes` FROM `users` WHERE `userEmail`=? AND `userName`=?";
然后,我們將使用:
$statement->bind_param('ss', $SESSION['email'], "USERNAME");
每個s代表一個問號,此后的每個值代表一個問號。
現在我們必須執行查詢。
$statement->execute();
如果我們期望返回結果,則必須使用
$statement->bind_result($userVotesText);
要將結果綁定到變量,如果我希望將結果綁定到列,則需要放入第二個變量。
現在設置這些變量,我們需要使用
if($statement->fetch()){
$userVotesResult = userVotesText;
}
此方法比其他查詢數據庫要好得多,稱為“ 預備語句”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.