-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 注入的内容并考虑将代码更新为mysqliPDO

于 2012-05-28T10:00:32.347 回答
3

您同时设置两列;

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 语法:

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 回答