Вот мой запрос
$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();
Скорее всего, проблема связывания? Любая помощь высоко ценится.
ОБНОВИТЬ:
пробовал оба по одному, но не работает
$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
}
}
пытаться
$config_select = $pdo->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$config_select->execute(array(':sku' => $sku));
В обязательном порядке $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();
Попробуй это. Я использую классы большую часть времени здесь пример
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;
}