PHP SQLITE Path speichern

Adriano10

Bekanntes Mitglied
PHP:
hh<!DOCTYPE html>
<html>

    <body>
<?php require_once "Database.php"; ?>
<?php
       
class UserDBTest {
       
        private $connection = null;
        private $pdo = null;
       
        public function __construct() {
           
            if (!(file_exists("sqlite-pdo-schachfibel.db"))) {
                $this->connection = new Database();
            } else {
                $this->pdo = new PDO("sqlite:sqlite-pdo-schachfibel.db", "root", null);
            }
        }
       
        /*User wird erzeugt und in der Datenebank gepeichert*/
        public function createUser($name, $email, $password, $image){
           try{
            $imagePath = fopen($image, 'rb');
            $valid = "INSERT INTO user(name, email, password, image) VALUES(:name, :email, :password, :image)";
            $stmt = null;
            if($this->connection !== null){
                $stmt = $this->connection->getPDO()->prepare($valid);
            }else{
                $stmt = $this->pdo->prepare($valid);
            }
           
            $stmt->bindParam(':name', $name);
            $stmt->bindParam(':email', $email);
            $stmt->bindParam(':password', $password);
            $stmt->bindParam(':image', $imagePath, PDO::PARAM_LOB);
            return $stmt->execute();
            $db->commit();
            echo "committed <br />";
           }catch(Execption $ex){
           echo "Fehler: " . $ex->getMessage(). "<br />";
           $db->rollBack();
           }
        }
       
        public function selectUser($id){
            try{
            $valid = "SELECT name, email, password FROM user where id = ?";
            $stmt = null;
            if($this->connection !== null){
            $stmt = $this->connection->getPDO()->prepare($valid);
            }else{
            $stmt = $this->pdo->prepare($valid);  
            }
            $userID = $id;
            $stmt->execute(array($userID));
            while($zeile = $stmt->fetchObject()){
            $userList = array("name" => htmlspecialchars($zeile->name), "email" => htmlspecialchars($zeile->email),
                          "password" => htmlspecialchars($zeile->password));
            return $userList;
            }
            }catch(Exception $ex){
            echo "Fehler: " . $ex->getMessage(). "<br />";  
            }
        }
   
}
        $dbObj = new UserDBTest();
        $dbObj->createUser("beka", "mschvilidze@yahoo.de", "anabana", "images/userImage/bild.png");
        $user = $dbObj->selectUser(1);
        echo $user["name"];
?>

Ich versuche Path in der Datenbank zu speichern aber wird immer folgende Fehler ausgegeben:

Warning: fopen(images/userImage/bild): Failed to open stream: No such file or directory in C:\Beka\OMP\Xamp\htdocs\webprogrammierung\php\User-DB-Test.php on line 25
 
K

kneitzel

Gast
Du versuchst da mit fopen eine Datei zu öffnen, die es nicht gibt.

Du gibst auch keine Endung an, ggf ist das Problem also, dass du im Explorer bekannte Endungen ausblendest und daher den Dateinamen ohne Endung angegeben hast? Aber das ist natürlich nur geraten.
 

Adriano10

Bekanntes Mitglied
Du versuchst da mit fopen eine Datei zu öffnen, die es nicht gibt.

Du gibst auch keine Endung an, ggf ist das Problem also, dass du im Explorer bekannte Endungen ausblendest und daher den Dateinamen ohne Endung angegeben hast? Aber das ist natürlich nur geraten.
Die datei gibt es eigentlich als Image im Folder images/userImage mit dem Namen bild. Welche Endung hab ich nicht angegeben?
 
K

kneitzel

Gast
Sicher, dass die Datei einfach nur bild heisst und nicht bild.png / bild.jpg oder ähnliches?
 

Ähnliche Java Themen

Neue Themen


Oben