MySQL Проблем при качането на саит на сървар

amsteljlo

Registered
http://steliyanportfolio.zzl.org/

това е опитами за сайт сега уча PHP i Mysql на локално всичко бачка ама катого качих стана бърко4а

Fatal error: Call to a member function prepare() on a non-object in /www/zzl.org/s/t/e/steliyanportfolio/htdocs/include/portfolio.php on line 8

------------connection.php-------------
<?php

try{
$pdo = new PDO('localhost', '869276_amsteljlo', 'st08553813','steliyanportfolio_zzl_myportfolio');
}
catch (PDOException $e) {
exit('Database error.');
}

?>

------------portfolio.php------------------

<?php
include_once ('connection.php');
var_dump($pdo);

class Portfolio {
public function fetch_all(){
global $pdo;

$query = $pdo->prepare("SELECT * FROM portfolio");
$query->execute();

return $query->fetchAll();
}
public function fetch_data($portfolio_id){
global $pdo;

$query = $pdo->prepare("SELECT * FROM portfolio WHERE portfolio_id = ?");
$query->bindValue(1,$portfolio_id);
$query->execute();

return $query->fetch();
}
}

?>
 
Преди този fatal error, имаш един warning, видя ли го?

Warning: PDO::__construct() expects parameter 4 to be array, string given

PDO не приема същите параметри, както mysql_connect функцията. Ако приемем, че steliyanportfolio_zzl_myportfolio е името на твоята бада-данни, предполагам, че това:

PHP:
$pdo = new PDO('localhost', '869276_amsteljlo', 'st08553813','steliyanportfolio_zzl_myportfolio');

Трябва да бъде:

PHP:
$pdo = new PDO('mysql:host=localhost;dbname=steliyanportfolio_zzl_myportfolio', '869276_amsteljlo', 'st08553813');

Можеш да добавиш и четвърти параметър, но той трябва да бъде масив, който съдържа опции за тази конекция. Например ако данните в твоята база данни са в UTF-8, ще стане:

PHP:
$pdo = new PDO(
     'mysql:host=localhost;dbname=steliyanportfolio_zzl_myportfolio',             '869276_amsteljlo', 
    'st08553813',
    array(
         PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8' "
    )
);
 

Back
Горе