-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');
?>
エラーメッセージはありません。すべてのフィールドは、私がechoメソッドでチェックしたときに、フォームから塗りつぶされ、投稿されています。 SQLエラーや何もありません。 データベーステーブルを更新しようとしています。ユーザーIDを持つクエリでない場合は、新しいテーブルを挿入する必要があります。 –
もちろん、あなたはmysql_queryまたはそれに類するものを使ってそのクエリを実行していますか? –
Yep mysql not mysqli –