Это whining строки 6: Warning: PDO::__construct() expects parameter 2 to be string, array given
Наряду с ошибкой строки 7:
Fatal error: Call to a member function prepare() on a non-object in
Как это исправить? Я протестировал запрос, и он отлично работает.
<?php ## Loop through results from mysql try{ #connection string $dbconn = new PDO('mysql:host=localhost;port=3306;dbname=thedb',array(PDO::ATTR_PERSISTENT => true)); $q = $dbconn->prepare("SELECT thecol FROM thetbl"); #call stored proc $q->execute(); #get the rows into an array $result = $q->fetchAll(); foreach($result as $r){ $xmlUrl = $r['FW_ArtSrcLink']; $ConvertToXml = simplexml_load_file($xmlUrl); # -> Setup XML $newsStory = $ConvertToXml->channel->item; } # -----> Load News Stories for($i = 0;$i<sizeof($newsStory); $i++){ # Source of Article Info--> $SrcTitle=$newsStory[$i]->title; $SrcLink=$newsStory[$i]->link; # Actual News Article Info --> $title=$newsStory[$i]->title; $desc=$newsStory[$i]->description; # Output Results ------------> echo '<hr>'; echo '<strong>'.'Title:'.$title.'</strong>'.'(via: <a href=\''.$SrcLink.'\'>'.$SrcTitle.'</a>'.'<br />'; //echo 'Link:'.$link.'<br />'; echo 'Description'.$desc.'<br>'; echo '<hr>'; } } // try catch(Exception $e){ $errorStored = $e->getMessage() . ' on ' .'/errors/fanwire_loop.php'; #where errors are stored $pageDateOfError = '/aggregate_looping.php'.date('l jS \of FY h:i:s A'); #inc the file and date into the file too file_put_contents($errorStored,$pageDateOfError, FILE_APPEND | LOCK_EX); } // catch #Load in File /************************************************* $xmlUrl ="http://sports.espn.go.com/espn/rss/mlb/news"; $ConvertToXml = simplexml_load_file($xmlUrl); # -> Setup XML $newsStory = $ConvertToXml->channel->item; # -----> Load News Stories for($i = 0;$i<sizeof($newsStory); $i++){ // Source of Article Info--> $SrcTitle=$newsStory[$i]->title; $SrcLink=$newsStory[$i]->link; // Actual News Article Info --> $title=$newsStory[$i]->title; $desc=$newsStory[$i]->description; echo '<hr>'; echo '<strong>'.'Title:'.$title.'</strong>'.'(via: <a href=\''.$SrcLink.'\'>'.$SrcTitle.'</a>'.'<br />'; //echo 'Link:'.$link.'<br />'; echo 'Description'.$desc.'<br>'; echo '<hr>'; } ***********************************************/ ?>
Вы неправильно инициализируете объект PDO, вторым параметром конструктора должно быть имя пользователя, а не массив параметров.
$dbconn = new PDO('mysql:host=localhost;port=3306;dbname=thedb',array(PDO::ATTR_PERSISTENT => true));
должно быть,
$dbconn = new PDO('mysql:host=localhost;port=3306;dbname=thedb', 'yourusername', 'yourpassword', array(PDO::ATTR_PERSISTENT => true));
Дополнительную информацию см. На странице руководства PHP для PDO :: __ construct () .
Вторая ошибка, которую вы получаете, потому что объект $dbconn
не был создан должным образом из-за первой ошибки.
Можете попробовать
$dbconn = new PDO('mysql:host=localhost;port=3306;dbname=thedb'); $q = $dbconn->prepare("SELECT thecol FROM thetbl", array(PDO::ATTR_PERSISTENT => true));