-2

どこが間違っていたのかを調べようとしていますが、問題を見つけることができません。データベースを更新できません。誰かが私のコードの欠落を確認できますか?いつも「データベースエラー」と言っています

コード:

<?php
if(isset($_POST['enviar'])) {
    $types="";
    for ($i=0; $i<count($_POST['texames']);$i++)
        $types=$types.$_POST['texames'][$i].',';

    $meta_desc=$_POST['meta_desc'];
    $meta_info=$_POST['meta_info'];

    $id_meta=$_POST['id_meta'];

    if($meta_desc && $meta_info) {
        $sql="update metainfo set meta_desc, meta_info='$meta_desc', '$meta_info' where id_meta=$id_meta";
        mysql_query($sql) or die("DAtabase Error ...");
        header("Location: list.php");
    } else {
        echo '<script language="javascript">alert("Fill  Form!");</script>';
    }
}
?>
4

6 に答える 6

3

クエリの問題:

update metainfo set meta_desc, meta_info='$meta_desc', '$meta_info' 

する必要があります

update metainfo set meta_desc='$meta_desc', meta_info='$meta_info'

行っていた方法で複数の列を同時に設定することはできません

コードの変更を検討する必要があることはかなりありますが、最初に変更してみてください

mysql_query($sql) or die("DAtabase Error ...");

mysql_query($sql) or die("Database Error - " . mysql_error());

これにより、適切なエラーメッセージが表示されます。

また、 SQLインジェクションについて読んで、コードをmysqliまたはPDOに更新することを検討する必要があります。

于 2012-05-28T10:00:32.347 に答える
3

2つの列を同時に設定しています。

set meta_desc, meta_info='$meta_desc', '$meta_info' where

クエリを次のように変更します。

update metainfo set meta_desc = '$meta_desc', meta_info = '$meta_info'
where id_meta = $id_meta
于 2012-05-28T10:02:40.383 に答える
1

試す

$sql="update metainfo set meta_desc='$meta_desc', meta_info='$meta_info' where id_meta=$id_meta";

また、dieステートメントでエラーをエコーアウトすると、より適切なデバッグ情報が得られます。

于 2012-05-28T10:02:32.127 に答える
1

あなたの問題は無効なsql-syntaxであるように見えます:

update metainfo set meta_desc, ...

フィールド/値の構文を台無しにしました。フィールドに値がなく、フィールドに適用されない場合はmeta_desc$meta_info次のようになります。

update metainfo set meta_desc = '$meta_desc', meta_info = '$meta_info'

ここで、id_meta = $ id_meta

于 2012-05-28T10:02:58.043 に答える
1

「meta_desc」の後にクエリに「=」がありません。

$sql="update metainfo set meta_desc=, meta_info='$meta_desc', '$meta_info' where id_meta=$id_meta";

上記のようにするべきか、次のようにするべきかわかりません。

$sql="update metainfo set meta_desc='$meta_desc', meta_info='$meta_info' where id_meta=$id_meta";
于 2012-05-28T10:04:27.980 に答える
0

または、これを試すこともできます。

$sql="UPDATE metainfo SET (meta_desc, meta_info) VALUES ('" . $meta_desc . "', '" . $meta_info . "') WHERE id_meta = " . $id_meta;
于 2012-05-28T10:06:45.853 に答える