私はユーザーが自分のプロフィールでユーザーの説明を編集できるようにしようとしています。しかし、私はこのエラーに来て、理由を理解できません。私の知る限り、それはユーザーがフォームに書いたものを保存する必要があり、スタックオーバーフロー私は、クエリのための正しい構文を使用していますが、それはまだfalseを返す上の異なった答えを見てのとおり、私はまだ十分に経験していないのですPHP/MYSQL編集プロファイル関数 - 間違ったクエリ構文?
'use near WHERE user_id=1' at line 4'
すべてのSQL構文エラーを理解できるようにする。私はPHPとSQLの両方を学びたいので、多くの詳細が説明のために歓迎されています。ここで
はコードでそれを探して、あなたの時間を節約するためのクエリです:
$id = $_SESSION['user_id'];
$descrip =$_SESSION['user_description'];
//Save changes
$sql ='UPDATE users
SET user_description='.mysqli_real_escape_string($link,$descrip).'
WHERE user_id='.mysqli_real_escape_string($link, $id);
これはeditdetail.phpファイルです。
<?php
include 'connect.php';
include 'header.php';
?>
<?php
// default Avatar picture if "avatar" column empty.
if(empty($_POST['user_avatar']))
{
$avatar = 'Images/default.jpg';
}
else
{
$avatar = $_POST['user_avatar'];
}
if(empty($_POST['user_description']))
{
$description = 'Edit your description to let people know more about you!';
}
else
{
$description = $_POST['user_description'];
}
// check if user is signed in
if(!isset($_SESSION['signed_in']))
{
//the user is not signed in.
echo '<a href="/Latest_try/signin.php">Sign in</a> to view your profile.';
}
else
{
if($_SERVER['REQUEST_METHOD'] != 'POST')
{
echo '<div id="LeftCol"><div id="Photo"> <img src="'.$avatar.'" width="205" height="205"></div>
<div id="ProfileOptions"> Usersince: '.$_SESSION["user_date"].'<br/>
<a href="editavatar.php">Edit avatar</a></div></div>
<div id="rightpart"> <div id="Info">
<span><a href="editdetails.php">Edit Details</a></span>
<p><strong>Username: '.$_SESSION["user_name"].' </strong></p>
<p><strong>Email: '.$_SESSION["user_email"].' </strong></p>
<p><strong><u>Description</u>: </strong></p>
<p> '.$description.' </p>
<form method="post" action="">
<br /><u>Edit description</u>:<br /><br /><textarea name="user_description" /></textarea><br />
<input type="submit" value="Update description" />
</form>
</form>
</div>
</div>
</html>';
}
else
{
$id = $_SESSION['user_id'];
$descrip =$_SESSION['user_description'];
//Save changes
$sql ='UPDATE
users
SET user_description='.mysqli_real_escape_string($link,$descrip).'
WHERE user_id='.mysqli_real_escape_string($link, $id);
$result = mysqli_query($link,$sql);
if(!$result)
{
//something went wrong, display the error
echo 'Error' . mysqli_error($link);
}
else
{
echo 'Description updated.';
}
}
}
@ chris85そうです。 – Jens
ありがとう、あなたは準備された声明の良い説明を提供する信頼できる情報源を知っていますか? – Richard
@リチャードグーグル – Jens