2013-11-16 8 views
0

Я пытаюсь получить ссылку, которую он дал моим rss-скриптом.bindparam не работает - PDO

Мой код с bindParam

$items = count($return_data->channel->item); 
    for($i=0; $i<1; $i++){ 
     $link = $desc = $return_data->channel->item[$i]->link; 
     $title = $desc = $return_data->channel->item[$i]->title; 
     echo $link; 
     echo '<hr>'; 
     // PDO query -> check if news already is in database 
     $q1 = $db->prepare("SELECT * FROM runescapenews WHERE link=':link'"); 
     $q1->bindParam(':link', $link); 
     $q1->execute(); 
     $r1 = $q1->rowCount(); 
     echo $r1; 
     echo '<hr>'; 
     if($r1 == '0'){ 
      echo '0 - Not working'; 
     }else{ 
      while($res1 = $q1->fetch(PDO::FETCH_ASSOC)) { 
       echo $res1['title']; 
      }     
     } 
    } 

Теперь проблема заключается в том, что мой результат не работает:

http://services.runescape.com/m=news/a=135/barrows---rise-of-the-six 
0 
0 - Not working 

Но когда я изменить link = ':link' к link='$link' мой результат будет:

http://services.runescape.com/m=news/a=135/barrows---rise-of-the-six 
1 
Barrows - Rise of the Six 

Так что мой вопрос. Как я могу заставить его работать с bindParam и до сих пор получать результат, я получаю результат при использовании $ link при подготовке?

ответ

2

$ q1 = $ db-> подготовить ("SELECT * FROM runescapenews WHERE link =: link");

+0

Drop the 'потому что bindParam делает это автоматически – Jompper

+0

Было бы хорошо, если бы вы объяснили разницу в ответе. – cHao

+0

: ссылка не ': link', потому что подготовленные заявления PDO работают таким образом – Jompper

Смежные вопросы