我的PDO构造错误-PHP

这是第6行的抱怨:警告:PDO :: __ construct()期望参数2为字符串,给定数组

伴随第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 F Y 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 manual page for PDO::__construct().

您遇到的第二个错误是因为第一个错误导致$dbconn对象创建不正确.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...