2016-06-27 6 views
0

私のテーブルはserviciiと呼ばれ、3つの変数を持っています:id、nume、pret。 私はこのコードを持っていますが、動作しません。 ありがとうございます。この私はデータベーステーブルを更新したいPHPを使用しているMySQL

if ($stmt->execute()) { 
    $_SESSION['msg'] = "Product successfuly updated!"; 
} else { 
    $_SESSION['error'] = "Product not updated!"; 
} 

を試すかechoerror

if(isset($_POST['btnUpdate2'])) 
{ 
    $stmt = $conn->prepare("UPDATE servicii SET nume =?, pret=? WHERE id=?"); 
    $nume = $_POST['txtNume']; 
    $pret = $_POST['txtCantitate']; 
    $id = $_POST['selectProd']; 
    $stmt->bind_param("iii", $nume, $pret, $id); 
    $stmt->execute(); 
    $stmt->close(); 
    $_SESSION['msg'] = "Product successfuly updated!"; 
} 

This is my database strong text

+0

どのようにあなたはそれが働いていないことを知って来ますか?任意のエラーまたは何か? –

+0

$ stmt-> execute(array($ nume、$ pret、$ id));を使用します。またはbind_paramコメント –

+0

「動作しません」以外の詳細はいくつか追加できますか?エラーが発生していますか?間違った結果ですか? – Mureinik

答えて

0

試してみてください、あなたはerror使用をお知りになりたい場合は、この

if(!$stmt->execute()) echo $stmt->error; 
+0

これは動作しません。アップデートされません。製品が正常に更新されました。id変数は、serviciiprogramareという別のテーブルのIDとの関係にあります。それが原因だと思う... – Andreea

0

使用すると、この

if(isset($_POST['btnUpdate2'])) 
{ 
    $stmt = $conn->prepare("UPDATE servicii SET nume =?, pret=? WHERE id=?"); 
    $nume = $_POST['txtNume']; 
    $pret = $_POST['txtCantitate']; 
    $id = $_POST['selectProd']; 
    $stmt->bind_param("ssi", $nume, $pret, $id); 
    $stmt->execute(); 
    $stmt->close(); 
    $_SESSION['msg'] = "Product successfuly updated!"; 
} 

仮定の$ヌメ& $のプレタポルテ変数は、文字列が含まれています。 この行を$stmt->bind_param("sdi", $nume, $pret, $id);

+0

プレットは浮動小数点数でnume varchar – Andreea

+0

@Andreea私は自分の答えを編集しました。それが今働くことを願っています。 http://php.net/manual/en/mysqli-stmt.bind-param.php –

+0

私もこれを試しましたが、私のIDは別のテーブルとの関係にあります。これは問題ですか? – Andreea

0

に変更します。iは整数を表します。これは、データベースへのクエリが機能していない理由の1つです。

これを修正する場合は、バインディングのiiissiに変更する必要があります。 ?(これは文字列です()最初の二つの引数...ここ

$stmt = $conn->prepare("UPDATE servicii SET nume = ?, pret= ? WHERE id = ?"); 
$stmt->bind_param("ssi", $nume, $pret, $id); // ssi 
if($stmt->execute()){ 
    echo "Success!"; 
} else { 
    echo 'Failed.'; 
} 

は、今後の参考のために、引数の型のリストであると仮定し、もちろんです:

  • i

    は整数です
  • sは、文字列のため、すなわち: "ジョン・ドウ"
  • dはダブル
  • のためのものであり、bはブロブです

詳しくはのphp.netウェブサイトをご覧ください!

+0

私の変数は文字列で浮動小数点数です。私はsdiやsfiも試しましたが、うまくいきません。 – Andreea

+0

@Andreeaはあなたが '$ conn'スクリプトを同じファイルの中に入れたことを確認しましたか?また、すべての資格情報が正しいことを確認してください –

+0

はい私は接続が含まれている、私はまた、挿入ステートメントがあり、これは動作します。 – Andreea

関連する問題