В чем разница между небольшим сложным стандартным запросом MySQL и тем, как он должен использовать PDO? - PullRequest
0 голосов
/ 01 ноября 2011

я получил этот запрос, используя только mysqls запросы по умолчанию,

if(!is_empty($_GET['cidade'])){
     $cidade = safe_string_escape($_GET['cidade']);
      $cidadestr="AND cidade LIKE '%$cidade'";
}
else $cidadestr="";

if(!is_empty($_GET['dormitorios'])){
     $dormitorios = $_GET['dormitorios'];
      $dormitoriosstr="AND dormitorios = '$dormitorios'";
}
else $dormitoriosstr="";

$busca = "SELECT * FROM imoveis WHERE status = 'Publicado' $cidadestr $dormitoriosstr; 

Я изменяю это на PDO, как:

if(!is_empty($_GET['cidade'])){
     $cidade = safe_string_escape($_GET['cidade']);
      $cidadestr="AND cidade LIKE '%$cidade'";
}
else $cidadestr="";

if(!is_empty($_GET['dormitorios'])){
     $dormitorios = $_GET['dormitorios'];
      $dormitoriosstr="AND dormitorios = '$dormitorios'";
}
else $dormitoriosstr="";


$busca = "SELECT * FROM imoveis WHERE status = :status :cidadestr :dormitoriosstr;
$buscasql = $conn->prepare($busca);
$buscasql->bindValue(':status', 'Publicado', PDO::PARAM_STR);
$buscasql->bindValue(':cidadestr', $cidadestr, PDO::PARAM_STR);
$buscasql->bindValue(':dormitoriosstr', $dormitoriosstr, PDO::PARAM_STR);
$buscasql->execute() or die(print_r($buscasql->errorInfo()));

это не работает, у меня ничего нет в rowCount () или подобных вещах, так что, я думаю, я делаю это неправильно, так как же сделать правильный переход от простого mysql к PDO? любая помощь?

Ответы [ 2 ]

0 голосов
/ 03 ноября 2011

решена! сделал это:

if(!is_empty($_GET['business'])){
     $buscasql.=" AND businessLIKE :business";
}

$buscasql = $conn->prepare($busca);

if(!is_empty($_GET['business'])){
     $business= '%'.safe_string_escape($_GET['business']).'%';
     $buscasql->bindValue(':business', $business, PDO::PARAM_STR);
}

затем свяжите все ... так, как мы обычно говорили "вокруг здесь" POG '

0 голосов
/ 02 ноября 2011

PDO предлагает уровень абстракции, который может быть очень полезен в переносимой среде.Вы также можете запрашивать данные у разных провайдеров, таких как Memcached и MySQL, хотя я не уверен, что изначально поддерживается.Но он предлагает отличную контекстную поддержку.

...