mysql — переполнение подготовленного оператора Select Stack

Я пытаюсь сделать очень абстрактную функцию выбора PDO, но по какой-то причине я получаю пустой массив.

function listAllProducts () {
return select('products', '', '');
}

function select( $tableName, $property, $value ){
switch($tableName)
{
case "products":
$tbl = 'products';
break;
case "cart":
$tbl = 'cart';
break;
}
switch($property){
case "id":
$property = 'id';
break;
case "name":
$property = 'name';
break;
}

$db = new PDO('mysql:host=localhost;dbname=ecom;charset=utf8', 'root', 'PASSWORD');
if( strcmp($value, '') != 0 ){ //if $value is not empty
$query = "SELECT * FROM $tbl WHERE $property = :value";
$stmt = $db->prepare($query);
//bind params
$stmt->bindValue(':value', $value);

}
else{
$query = "SELECT * FROM $tbl";
$stmt = $db->prepare($query);
}
//execute
try{
$stmt->execute();
$result = $stmt->fetchAll();
return $result;
}
catch(Exception $e){
return $e;
}
}

Есть что-то простое, что мне не хватает?

РЕДАКТИРОВАТЬ: Спасибо за помощь, но после добавления переключателя и удаления таблицы и столбцов из моих связанных параметров, я все еще получаю пустой набор результатов 🙁

РЕДАКТИРОВАТЬ 2: Я нашел несколько запутанное решение, добавил его выше, но похоже, что он работает на данный момент! Необходимо дополнительное тестирование.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]