我正在尝试使用以下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']}')");
}
?>
我做错了什么?
答案 0 :(得分:2)
<form id="form2" name="form2" **method="post"** onsubmit="return validateForm();" action="">
请注意您的表单方法是
并且您正尝试使用get方法
获取数据 <强> isset ( $_GET['id'] ) && ! empty ( $_GET['id'] )
强>
用$ _POST ['key_name]替换它们; 得到适当的结果。
答案 1 :(得分: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']}') ");
}
?>
答案 2 :(得分:0)
2件事。
1)由于您的表单方法是POST,您必须使用$_POST['id']
。
2)在您的查询字符串中,您的mysql UPDATE
语法错误以及在字符串中使用带键的数组时,您必须将其包装在{
和}
中标签。这应该有效:
$wpdb->query("UPDATE " . PRO_TABLE_PREFIX . "tutorial SET name='{$_POST['name']}', website='{$_POST['website']}', description='{$_POST['description']}' WHERE id={$_POST['id']}");
答案 3 :(得分:0)
使用此更新查询语法不正确
$wpdb->query("update ".PRO_TABLE_PREFIX."tutorial set name='{$_POST['name']}', website='{$_POST['website']}', description= '{$_POST['description']}' where id= $_GET['id'] ) ");
答案 4 :(得分:0)
如果您希望ID在$ _GET ['id']中,那么表单操作应该是这样的
action = "<page-url>?id=<somevalue>"
此外,您必须创建一个文本框来输入id,并且应该根据输入使用jQuery或Javascript更改表单。
最后,如果这太复杂,请将$ _GET ['id']更改为$ _POS ['id'],如其他人建议的那样。
此外,SQL查询不正确。其他人已经指出了。