[英]PHP and Mysql not echoing my variable
不知道我是否編寫了錯誤的代碼,或者僅僅是因為我有一個非常大的數據庫試圖從中提取。
我沒有收到任何錯誤,但頁面上沒有任何顯示。 數據庫很大,可能會導致我無法找到結果。 我知道郵政編碼在數據庫中,因為我在PHPMYADMIN SQL
選項卡中找到了它。
<?php
$location = $user['location'];
$postcode = DB::query("SELECT * FROM postcodes WHERE Postcode LIKE '%" . $location . "%'");
$longitude = $postcode['Longitude'];
echo $longitude;
?>
我從已經加載的查詢中獲取$user['location']
,並且頁面上的echo
s已在頁面上顯示郵政編碼。
我是PHP
和MYSQL
新手,所以我想嘗試學習,但是當它沒有給我任何錯誤時,將很難找到我想要的東西。
非常感謝-Jonny Dommett
編輯-表架構
id int(11) NO PRI NULL auto_increment
Postcode varchar(8) NO NULL
Latitude decimal(9,6) NO NULL
Longitude decimal(9,6) NO NULL
編輯-PDO
<?php
class DB{
private static function connect(){
$pdo = new PDO('mysql:host=localhost;dbname=vapoural_wsc;charset=utf8','testing','testing123');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
public static function query($query, $params = array()){
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement-> fetchAll();
return $data;
}
}
}
?>
編輯-VAR DUMP
var_dump($postcode);
產生了
array(0) { }
編輯-PHP MYADMIN中的SQL
編輯-問題=已修正
問題出自我在數據庫中輸入數據的地方。 確保通過執行VARDUMP檢查列,然后首先查看結果。
您的錯誤是由於在變量$longitude/$logitude
和數組鍵Logitude
中的拼寫錯誤。
這是在我的機器上測試過的有效代碼。
<?php
class DB{
private static function connect(){
$pdo = new PDO('mysql:host=localhost;dbname=vapoural_wsc;charset=utf8','testing','testing123');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $pdo;
}
public static function query($query, $params = array()){
$statement = self::connect()->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement-> fetchAll();
return $data;
}
}
}
$location = '4200';
$query = "SELECT * FROM postcodes WHERE Postcode LIKE ?";
var_dump(DB::query($query, ['%'.$location.'%']));
輸出:
array(1) {
[0]=>
array(8) {
["id"]=>
string(1) "1"
[0]=>
string(1) "1"
["Postcode"]=>
string(5) "42000"
[1]=>
string(5) "42000"
["Latitude"]=>
string(4) "2344"
[2]=>
string(4) "2344"
["Longitude"]=>
string(4) "2334"
[3]=>
string(4) "2334"
}
}
輸出是插入到數據庫中的隨機數據的示例。
重要說明 :此代碼使用准備好的語句。 您在查詢中使用變量,因此請使用准備好的語句以避免SQL注入。
在此代碼中,我將$location
設置$location
靜態值,以確保提供的代碼有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.