2016-03-13 123 views
0

這裏是我的查詢MySQL的PDO結合空結果

$sql = "SELECT sku, cost, fee 
      FROM `mws_config_data` WHERE `sku` = :sku"; 
$config_select = $pdo->prepare($sql); 
$config_select->execute(array(':sku' => $sku, PDO::PARAM_STR)); 

返回空的結果

但是,如果我做硬編碼sku值,例如,AHX-32929-xxx,並相應地運行查詢,它的工作原理,並顯示記錄

$sql = "SELECT sku, cost, fee 
      FROM `mws_config_data` WHERE `sku` = 'AHX-32929-xxx'"; 
$config_select = $pdo->prepare($sql); 
$config_select->execute(); 

最有可能的一個綁定問題?任何幫助,高度讚賞。

UPDATE: 嘗試都一個接一個,但沒有工作

$config_select->execute(array('sku' => $sku)); 
$config_select->execute(array( ':sku' => $sku)); 

我的最後一步爲

$config_data = $config_select->fetchAll(PDO::FETCH_ASSOC); 
var_dump($config_data); 

空的結果(我的意思)

array(1) { 
    [0]=> 
    array(3) { 
    ["sku"]=> 
    NULL 
    ["cog"]=> 
    NULL 
    ["cost"]=> 
    NULL 
    ["fee"]=> 
    NULL 

    } 
} 
+0

你確定'$ sku'總是有值嗎?它似乎就要空了。用'echo'檢查它。 –

+0

傾倒它,並且它有 –

+0

定義「空的結果」。你的代碼返回什麼特定的值。 –

回答

0

在綁定$config_select->execute(array(':sku' => $sku, PDO::PARAM_STR));中,您可以嘗試2件事。刪除SKU的:,如果不行刪除PDO::PARAM_STR

編輯:

你可以做到這一點

$config_select->bindParam(':sku', $sku, PDO::PARAM_STR); 
$config_select->execute(); 
+0

感謝您的幫助,仍然,同樣的結果... –

0

嘗試

$config_select = $pdo->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); 
$config_select->execute(array(':sku' => $sku)); 
+0

did not work bro ... –

0

試試這個。我在這裏大部分時間使用類這裏的一個例子

public function findMySku($sku) 
{ 

try 
{ 
$sql = "SELECT sku, cost, fee 
FROM `mws_config_data` WHERE `sku` = :sku"; 
$stmt = $this->dbh->prepare($sql); 
$stmt->bindParam(":sku", $sku); 
$stmt->execute(); 
$myTableOutput = $stmt->fetchAll(PDO::"here is your choice what you want to do and depending where I for example use FETCH_CLASS since my database is in my class"); 
} 
catch 
{ 
die($e->getMessage()); 
} 

if(isset($myTableOutput[0]) 
{ 
    $mySku = $myTableOutput[0]; 
} 
else 
{ 
    die("nooo sku found!"); 
} 

    return $mySku; 
}