2017-08-07 12 views
1

クエリに電子メールを追加するとデータベースの値が更新されません。しかし、すべての電子メールなしで正常に動作します。奇妙な。ここでPHPのクエリでユーザープロファイルを編集/更新する

は私の更新クエリです:ここで

if ($stmt = $mysqli->prepare("UPDATE signup_and_login_users_table SET fullname = ?, username = ?, email = ? 
WHERE id=?")) 
{ 
$stmt->bind_param("ssi", $fullname, $username, $id, $email); 
$stmt->execute(); 
$stmt->close(); 
} 

は私のインサートである:

if ($stmt = $mysqli->prepare("INSERT signup_and_login_users_table (fullname, username, email) VALUES (?, ?, ?)")) 
{ 
$stmt->bind_param("ss", $fullname, $username, $email); 
$stmt->execute(); 
$stmt->close(); 
} 

答えて

0

拘束されることをお使いのパラメータがでなければなりません同じ注文

この

<?php 

if ($stmt = $mysqli->prepare("UPDATE signup_and_login_users_table SET fullname = ?, username = ?, email = ? WHERE id = ?")) 
{ 
    $stmt->bind_param("sssi", $fullname, $username, $email, $id); 
    $stmt->execute(); 
    $stmt->close(); 
} 
?> 
+0

ありがとうございました! – Renzo

3

あなたのparams順序は次のようになります。$stmt->bind_param("sssi", $fullname, $username, $email, $id);

<?php 

if ($stmt = $mysqli->prepare("UPDATE signup_and_login_users_table SET fullname = ?, username = ?, email = ? WHERE id = ?")) 
{ 
    $stmt->bind_param("sssi", $fullname, $username, $email, $id); 
    $stmt->execute(); 
    $stmt->close(); 
} 
?> 
+0

S =文字列、S =文字列、S =文字列、I = interger –

+0

@Lal http://php.net/manual/en/mysqli-フィールド名stmt.bind-param.php –

0

を試す問題はあなたのクエリはわずか4人のフィールド名を持っていることですが、5つのパラメータを結合しています。あなたはあなたの質問から "ssi"を残しました。 "SSI" と仮定

if ($stmt = $mysqli->prepare(
"INSERT signup_and_login_users_table (ssi, fullname, username, email) VALUES (?, ?, ?)")) { 

+0

多くの場合、idフィールド(ssiではなく)は自動インクリメントです。ヌルを挿入すると(通常は挿入されたフィールドがなくなってしまいます)、それが埋め込まれます。 –

関連する問題