2016-05-23 18 views
-2

スクリプトを変更して他のやり方を見つけるのに2時間ほどかかりました。もし誰かが私のスクリプトの中で偉大な問題を指摘してくれたら。どうもありがとう。SQLの更新または挿入クエリが機能しない

私はスクリプトを更新しました。うまくいけば、これはより良い理解と詳細を与えるでしょう。

<?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'); 


?> 

答えて

2

詳細。たとえば、エラーメッセージが役立つはずです。 UPDATEに空のメールを入力しようとする$$電子メール(doulbe $$ sign)があります。空ではない場合、クエリがクラッシュする可能性があります。

+0

エラーメッセージはありません。すべてのフィールドは、私がechoメソッドでチェックしたときに、フォームから塗りつぶされ、投稿されています。 SQLエラーや何もありません。 データベーステーブルを更新しようとしています。ユーザーIDを持つクエリでない場合は、新しいテーブルを挿入する必要があります。 –

+1

もちろん、あなたはmysql_queryまたはそれに類するものを使ってそのクエリを実行していますか? –

+0

Yep mysql not mysqli –

関連する問題