1

我正在尝试使用以下 HTML 创建成功的更新:

<form id="form2" name="form2" method="post" 
  onsubmit="return validateForm();" action="">

    Id <input type="text" class="txt" name="id" />
    <br />
    Name <input type="text" class="txt" name="name" />
    <br />
    Website <input type="text" class="txt" name="website" />
    <br />
    Description <input type="text" class="txt" name="description" />
    <br />
    <input type="submit" id="submit" value="Submit"/>
</form>

然后我使用以下 PHP 读取值并更新我的数据库:

<?php
  global $wpdb;
  if (isset($_GET['id']) && !empty($_GET['id']) &&
    isset($_POST['name']) && !empty($_POST['name']) &&
    isset($_POST['website']) && !empty($_POST['website']) &&
    isset($_POST['description']) && !empty($_POST['description']))
  {
      $wpdb->query("update where id = $_GET['id'] ".PRO_TABLE_PREFIX
            ."tutorial (name, website, description) "
            ."values('{$_POST['name']}', '{$_POST['website']}', '{$_POST['description']}')");
  }
?>

我究竟做错了什么?

4

5 回答 5

2
<form id="form2" name="form2" **method="post"** onsubmit="return validateForm();" action="">

请注意,您的表单方法是 post

并且您正在尝试使用 get 方法获取数据

isset ( $_GET['id'] ) && ! empty ( $_GET['id'] )

将这些替换为 $_POST['key_name]; 以获得正确的结果。

于 2013-01-01T06:25:46.740 回答
0

尝试使用 POST id

<?php
     global $wpdb;
if ( isset ( $_POST['id'] ) && ! empty ( $_POST['id'] ) &&
 isset ( $_POST['name'] ) && ! empty ( $_POST['name'] ) &&
 isset ( $_POST['website'] ) && ! empty ( $_POST['website'] ) &&
 isset ( $_POST['description'] ) && ! empty ( $_POST['description'] ))
{
$wpdb->query("INSERT ".PRO_TABLE_PREFIX."tutorial ( name, website, description )
values('{$_POST['name']}','{$_POST['website']}','{$_POST['description']}') ");
}
?>
于 2013-01-01T06:15:10.813 回答
0

2 事情。

1)由于您的表单方法是 POST,因此您必须使用$_POST['id'].

2)在您的查询字符串中,您的mysqlUPDATE语法错误以及在字符串中使用带有键的数组,您必须将其包装在{}标签中。这应该有效:

$wpdb->query("UPDATE " . PRO_TABLE_PREFIX . "tutorial SET name='{$_POST['name']}', website='{$_POST['website']}', description='{$_POST['description']}' WHERE id={$_POST['id']}");
于 2013-01-01T06:18:42.190 回答
0

使用这个你的更新查询是不正确的语法

$wpdb->query("update ".PRO_TABLE_PREFIX."tutorial set  name='{$_POST['name']}', website='{$_POST['website']}', description= '{$_POST['description']}' where id= $_GET['id'] ) ");
于 2013-01-01T06:19:06.167 回答
0

如果您希望 ID 在 $_GET['id'] 中,那么表单操作应该是这样的

action = "<page-url>?id=<somevalue>"

此外,您必须创建一个文本框来输入 id,并且应该根据那里的输入使用 jQuery 或 Javascript 更改表单。

最后,如果这太复杂,请按照其他人的建议将 $_GET['id'] 更改为 $_POS['id'] 。

此外,SQL 查询不正确。其他人已经指出了这一点。

于 2013-01-01T06:28:43.700 回答