2017-07-18 91 views
0
<?php 
$localhost ="localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "sbnhs"; 
try { 
    $db = new PDO("mysql:host=$localhost;dbname:$dbname", $username, $password); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    // echo "Success"; 
    $x = 0128; 
    $sql = $db->prepare("SELECT * FROM $dbname.refcitymun WHERE provCode = :provcode"); 
    $sql->bindValue(':provcode', $x); 
    if($sql->execute()) { 
     while($result = $sql->fetch()){ 
      $desc = $result['citymunDesc']; 
      echo $desc; 
     } 
    }else { 
     echo 'Query Error'; 
    } 
}catch (PDOException $e) { 
    print 'Error: ' . $e->getMessage() . '</br>'; 
    die(); 
} 

?> 

我想在我的地址欄中顯示數據,但它不顯示任何內容或錯誤。我不知道代碼有什麼問題Pdo select語句不顯示數據庫中的數據

<?php 
$localhost ="localhost"; 
$username = "root"; 
$password = ""; 
$dbname = "sbnhs"; 
try { 
    $db = new PDO("mysql:host=$localhost;dbname:$dbname", $username, $password); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    // echo "Success"; 
    // $x = 0128; 
    $sql = $db->prepare("SELECT * FROM $dbname.refcitymun WHERE provCode = 0128"); 
    // $sql->bindValue(':provcode', $x); 
    if($sql->execute()) { 
     while($result = $sql->fetch()){ 
      $desc = $result['citymunDesc']; 
      echo $desc; 
     } 
    }else { 
     echo 'Query Error'; 
    } 
}catch (PDOException $e) { 
    print 'Error: ' . $e->getMessage() . '</br>'; 
    die(); 
} 

?> 

但是當我嘗試上面的格式時,它顯示我想要的數據。但我需要在聲明中使用變量。請檢查什麼是錯的第一個代碼

+1

'0128'是八進制表示法,它是十進制數中的一個不同的數字。 –

+1

'$ x = 0128;'應該出錯,因爲它甚至不是一個有效的八進制數字(儘管舊版本只會默默地將其截斷爲「012」,請參閱(https://stackoverflow.com/a/40736053/) 2422776的詳細信息) – Mureinik

+0

@u_mulder關於如何解決這個問題的任何建議嗎?我需要將八進制轉換爲十進制嗎? –

回答

0

提供第三個參數(在適當的數據類型)在bindValue

更改以下行:

$sql->bindValue(':provcode', $x); 

$sql->bindValue(':provcode', $x, PDO::PARAM_STR);// This will work if your provcode is of type int, provide appropriate datatype 
+0

我已經嘗試過第二個,但它仍不顯示任何數據 –

+0

它是否在運行?PDO :: PARAM_STR? –

+0

我改變了t他用字符串類型的變量,它解決了我想要的一切。我真笨。順便說一句感謝關閉已經 –