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');
?>
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. –
Und natürlich, führen Sie diese Abfrage mit mysql_query oder etwas ähnliches? –
Yep mysql nicht mysqli –