2016-05-23 12 views
-2

Ich habe etwa 2 Stunden damit verbracht, das Skript zu ändern und andere Möglichkeiten zu finden, aber kein Glück. Wenn irgendjemand bitte auf irgendwelche Probleme in meinem Skript hinweisen könnte, wäre das großartig. Danke vielmals.SQL Update oder Einfügen der Abfrage funktioniert nicht

Ich habe das Skript aktualisiert, hoffentlich gibt dies ein besseres Verständnis und mehr Details.

<?php 

    session_start(); 

if(!isset($_SESSION["user"]) or !is_array($_SESSION["user"]) or empty($_SESSION["user"])) { 
     // redirect to login page 
} 
$dbhost = "localhost"; 
$dbname = "**"; 
$dbuser = "root"; 
$dbpass = "**"; 

// database connection 
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass); 
// new data 



error_reporting(E_ALL); 

        $work = $_POST['work']; 
        $education = $_POST['education']; 
        $location = $_POST['location']; 
        $relationship = $_POST['relationship']; 
        $phone = $_POST['phone']; 
        $email = $_POST['email']; 
        $website = $_POST['website']; 
        $language = $_POST['language']; 
        $skill = $_POST['skill']; 
        $tumblr = $_POST['tumblr']; 
        $instagram = $_POST['instagram']; 
        $skype = $_POST['skype']; 
        $facebook = $_POST['facebook']; 
        $youtube = $_POST['youtube']; 
        $twitter = $_POST['twitter']; 
        $about = $_POST['about']; 
        $user_id = $_SESSION['user']['id']; 

        echo $work."</br>"; 
        echo $education."</br>"; 
        echo $location."</br>"; 
        echo $relationship."</br>"; 
        echo $phone."</br>"; 
        echo $email."</br>"; 
        echo $website."</br>"; 
        echo $language."</br>"; 
        echo $skill."</br>"; 
        echo $tumblr."</br>"; 
        echo $instagram."</br>"; 
        echo $skype."</br>"; 
        echo $facebook."</br>"; 
        echo $youtube."</br>"; 
        echo $twitter."</br>"; 
        echo $about."</br>"; 
        echo $user_id; 

/* 
     "IF EXISTS (SELECT * FROM Table1 WHERE Column1=’SomeValue’) 
    UPDATE Table1 SET (…) WHERE Column1=’SomeValue’ 
ELSE 
    INSERT INTO Table1 VALUES (…)" 
*/ 

$sql = "IF EXISTS (SELECT * FROM user_details WHERE user_id=".$_SESSION['user']['id'].") 
    UPDATE user_details SET 
    (work='".$work."',education='".$education."',location='".$location."',relationship='".$relationship."',phone='".$phone."',email='".$email."',website='".$website."',language='".$language."',skill='".$skill."',tumblr='".$tumblr."',instagram='".$instagram."',skype='".$skype."',facebook='".$facebook."',youtube='".$youtube."',twitter='".$twitter."',about='".$about."') 
WHERE user_id='".$user_id."' 
ELSE INSERT INTO user_details (work,education,location,relationship,phone,email,website,language,skill,tumblr,instagram,skype,facebook,youtube,twitter,about,user_id) 
VALUES 
('".$work."','".$education."','".$location."','".$relationship."','".$phone."','".$email."','".$website."','".$language."','".$skill."','".$tumblr."','".$instagram."','".$skype."','".$facebook."','".$youtube."','".$twitter."','".$about."','".$user_id."')"; 
        $q = $conn->prepare($sql); 
        $q->execute(); 
     var_dump(mysql_error()) 



// header('Location: ../usr_settings.php'); 


?> 

Antwort

2

Weitere Einzelheiten bitte. Eine Fehlermeldung zum Beispiel sollte nützlich sein. In UPDATE haben Sie eine $$ E-Mail (doulbe $$ sign), die wahrscheinlich versucht, leere E-Mails einzugeben. Wenn es nicht leer sein kann - Abfrage kann abstürzen.

+0

Nun, es gibt keine Fehlermeldung. Alle Felder werden gefüllt und aus dem Formular gepostet, wie ich über die Echo-Methode überprüft habe. Keine SQL-Fehler oder irgendetwas. Ich versuche, eine Datenbanktabelle zu aktualisieren, und wenn es keine Abfrage mit einer Benutzer-ID ist, muss ich eine neue eingeben. –

+1

Und natürlich, führen Sie diese Abfrage mit mysql_query oder etwas ähnliches? –

+0

Yep mysql nicht mysqli –