Hi 
Ich versuche mich gerade nen bisschen mit PDO und OOP rum nur bin ich jetzt auf
ein Problem gestoßen und zwar:
Bekomme ich diesen Fehler.. ich weiß nicht warum die Datenbank und Tabelle existiert und es befinden sich auch Datensätze darin..
Mein Script sieht bis jetzt so aus...
Mfg
PS: Vorschläge,Wünsche und Kritik zu meinem Code nehme ich gerne an

Ich versuche mich gerade nen bisschen mit PDO und OOP rum nur bin ich jetzt auf
ein Problem gestoßen und zwar:
Code:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in C:\xampp\htdocs\OOPLike\lib2.php:89 Stack trace: #0 C:\xampp\htdocs\OOPLike\lib2.php(89): PDOStatement->execute() #1 C:\xampp\htdocs\OOPLike\lib2.php(70): Vote->GetStatus('22', '11') #2 C:\xampp\htdocs\OOPLike\index.php(8): Vote->GetVars() #3 {main} thrown in C:\xampp\htdocs\OOPLike\lib2.php on line 89
Mein Script sieht bis jetzt so aus...
PHP:
<?php
//include('connection.php');
class Vote {
private $db;
public function __construct() {
$pass = "";
$user = "root";
try {
$this->db = new PDO('mysql:localhost; dbname=votes;',$user,$pass);
$this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
}
public function GetVars() {
$err = 0;
$intErr = 0;
if(isset($_GET['uID'])) {
$uID = $_GET['uID'];
}else{
echo "UserID was not declared";
$err++;
}
if(isset($_GET['pID'])) {
$pID = $_GET['pID'];
}else{
echo "PostID was not declared";
$err = $err++;
}
if($err == 0) { //Falls kein Fehler aufgetreten ist
if(!is_numeric($_GET['uID'])) {
$intErr++;
}
if(!is_numeric($_GET['pID'])) {
$intErr++;
}
if($intErr == 0) {
$this->GetStatus($uID,$pID);
}else{
echo "The URL Values aren't a Nummer";
}
}
}
public function GetStatus($uID,$pID) {
//Status ermitteln (SELECT)
$query = "SELECT COUNT(*) FROM votes WHERE userID=:uID AND postID=:pID LIMIT 1";
$sth = $this->db->prepare($query);
$sth->bindParam(':uID',$uID,PDO::PARAM_INT);
$sth->bindParam(':pID',$pID,PDO::PARAM_INT);
$res = $sth->execute();
//Überprüfen
if($res > 0) { // Falls ein Datensatz gefunden wurde...
//Fetchen
$row = $res->fetchAll("PDO::FETCH_OBJ");
//Ergebniss Switchen
switch($row->status) {
case('0'): //Falls User davor sein Like weggenommen hat
$status = 1; // Status auf 1 Setzen
break;
case('1'): // Falls User jetzt sein Like wegnehmen will
$status = 0; //Status auf 0 setzen
break;
}
//Status Updaten
$this->UpdateStatus($uID,$pID,$status);
}else{ // Falls kein Datensatz gefunden wurde...
$this->InsertStatus($uID,$pID);
}
echo "Was Inserted in " . $uID . " and " . $pID . " GetStatus()";
}
public function InsertStatus($uID,$pID) {
//$status braucht nicht erwähnt zu werden, da $status beim "Liken"
//immer auf 1 gesetzt wird
//Neuen Status erstellen
$query = "INSERT INTO votes (userID,postID,status) VALUES (:uID,:pID,1)";
$sth = $this->db->prepare($query);
$sth->bindParam(':uID',$uID,PDO::PARAM_INT);
$sth->bindParam(':pID',$pID,PDO::PARAM_INT);
$sth->execute();
$status = 1;
$this->ReturnStatus($uID,$pID,$status);
echo "Was Inserted in " . $uID . " and " . $pID . " InsertStatus";
}
public function UpdateStatus($uID,$pID,$status) {
//Status Updaten
$query = "UPDATE votes SET status=:status WHERE userID=:uID AND postsID=:pID";
//$query = "UPDATE `votes` SET status= :status WHERE userID= :uID AND postsID= :pID"
$sth = $this->db->prepare($query);
$sth->bindParam(':uID',$uID,PDO::PARAM_INT);
$sth->bindParam(':pID',$pID,PDO::PARAM_INT);
$sth->bindParam(':status',$status,PDO::PARAM_INT);
$sth->execute();
$this->ReturnStatus($uID,$pID,$status);
}
public function ReturnStatus($uID,$pID,$status) {
//Status (Link) zurückgeben
if($status >= 0) {
switch($status) {
case('0'):
echo "<a href=\"index.php?uID=" . $uID . "&pID=" . $pID . "\">Like</a>";
break;
case('1'):
echo "<a href=\"index.php?uID=" . $uID . "&pID=" . $pID . "\">Unlike</a>";
break;
}
}else{
//Falls es einen unbekannten Status gibt
echo "Error";
}
}
}
?>
Mfg
PS: Vorschläge,Wünsche und Kritik zu meinem Code nehme ich gerne an
