2016-04-07 5 views
-2

Ich habe eine create-Funktion, die auf localhost funktioniert, aber nicht auf meinem Server funktioniert. Was ich meine ist, wird nichts in der Datenbank gespeichert, während es auf localhost tut. Ich benutze übrigens winhost. Hier ist der Code:Warum funktionieren meine php crud-Operationen in localhost, aber nicht in server?

public function create ($title, $content, $date, $price){  

$db = Dbclass::getDB(); 
$query = "INSERT INTO upcoming_albums (albums_title, albums_content, albums_date, albums_price, albums_img_path) 
     VALUES (:title, :content, :date, :price, :path)"; 
$statement = $db->prepare($query); 
$statement->bindParam(':title', $title, PDO::PARAM_STR, 50); 
$statement->bindParam(':content', $content); 
$statement->bindParam(':date', $date); 
$statement->bindParam(':price', $price, PDO::PARAM_STR, 10); 
$statement->bindValue(':path', $this->target_path, PDO::PARAM_STR); 

$statement->execute(); 

} 

Hier ist meine Form:

<form action="" enctype="multipart/form-data" method="post" id="form_c"> 
     <label for="title">Title:</label> 
      <input type="text" name="title" id="title"/> 
     <label for="content">Content:</label> 
      <textarea name="content" id="content"></textarea> 
     <label for="date">Release Date (RRRR-MM-DD):</label> 
      <input type="text" name="date" id="date"/> 
     <label for="price">Price:</label> 
      <input type="text" name="price" id="price"/> 
     <label for="album_img">Price:</label> 
      <input type="file" name="file" id="album_img"/> 
      <span> 
       <?php  
        if (isset($_POST['btn_submit'])) { 
         $upcoming_album->uploadImg(); 
        } 
       ?> 
      </span> 
     <button type="submit" name="btn_submit">Submit</button> 
    </form> 

und hier ist der Code in der gleichen Datei wie die Form, die die create-Methode setzt:

<?php 
require_once "../../controllers/admin/Album.php"; 
$upcoming_album = new Album; 
if (isset($_POST['btn_submit'])) { 
    $upcoming_album->setFile(); 
    $upcoming_album->create($_POST['title'],$_POST['content'],$_POST['date'],$_POST['price']); 
} 
$albums = $upcoming_album->read(); 
?> 

Die Update-Methode auch funktioniert nicht. Die Löschmethode funktioniert jedoch wie ein Charm. CRUD-Operationen funktionieren in localhost einfach gut.

+1

'error_reporting (E_ALL); ini_set ('display_errors', '1'); ' – AbraCadaver

+1

Beginnen Sie mit der Implementierung einiger grundlegender Fehlerbeherrschung/Fehlerbehandlung für Ihre Datenbankabfragen - gerade jetzt beheben Sie alle Fehler, die möglicherweise aufgetreten sind. – CBroe

+0

@abracadaver Ich habe versucht, dies an mehreren Stellen und nichts passiert ist. Wo soll ich es hinstellen? –

Antwort

0

Okies !. Aber Ihrer Ansicht nach funktioniert PHP crud auf dem lokalen Server, aber nicht auf dem Server. Das Problem kann einige Probleme wie: -

  1. Sie verwenden PDO 's für Werte in db (d) Einsetzen Sie Erweiterungen auf Ihrem lokalen Host aktiviert. so funktioniert es gut. aber es ist möglicherweise nicht im Server aktiviert. Bitte versuche es in deiner PHP Konfiguration zu aktivieren.
  2. Oder Sie können diese Zeile überprüfen., $ Db = Dbclass :: getDB(); wenn die db aktiv ist oder nicht

    echo ''; print_r ($ db); Ausfahrt;

+0

1. Ich habe keine Ahnung, wie ich meine PHP-Konfiguration auf WinHost ändern kann. Das Seltsame ist, dass Crud-Operationen zuvor auf meinem Server funktionierten. 2. Ich habe das versucht, und jetzt bekomme ich eine leere Seite, die sagt "PDO Object()" ohne Option, es zu erweitern –

+0

1. Überprüfen Sie zuerst Ihre Datenbankverbindung. 2. überprüfe pdo durch if (! Defined ('PDO :: ATTR_DRIVER_NAME')) { Echo 'PDO nicht verfügbar'; } –

+0

Ich versuchte dies und bekam keine Nachricht. Crud arbeitet an einem anderen Feature von mir. Ich kann E-Mail-Adressen speichern. Ich habe das Gefühl, es könnte ein alberner Codierungsfehler sein, den ich nicht verstanden habe ... aber ich habe alles kopiert. –

Verwandte Themen