Php 更新查询时SQL语法出错
我正在尝试更新数据库中的表。奇怪的是,它实际上是更新的,但我得到了一个错误 代码是:Php 更新查询时SQL语法出错,php,mysql,Php,Mysql,我正在尝试更新数据库中的表。奇怪的是,它实际上是更新的,但我得到了一个错误 代码是: if ($this->id_member != null) { $sql = "UPDATE `tbl_member` SET `status` = 1 WHERE `id_member` = {$this->id_member};";
if ($this->id_member != null) {
$sql = "UPDATE `tbl_member`
SET `status` = 1
WHERE `id_member` = {$this->id_member};";
// echo $sql;
$result = $this->database->query($sql);
}
错误消息:
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
在第3行的“”附近{“状态”:“成功”}
我尝试在我的列和表名上使用反斜杠,但仍然出现错误。我在这里检查了与此相关的stackoverflow问题,但没有一个可以解决我的问题。
谢谢
echo$sql的结果是
UPDATE `tbl_member`
SET `status` = 1
WHERE `id_member` = 96;{"status":"success"}
这方面的ajax方面是
function activateSubscriber() {
$.ajax({
url: "../../system/components/subscribers/controller/activate_subscriber.php",
type: "POST",
dataType: "json",
data: $('#activate_subscriber_form').serialize(),
success: function (data) {
if (data.status == "success") {
$('#activate_subscriber_modal').modal('hide');
getMemberList();
$.notify({
icon: 'glyphicon glyphicon-warning-sign',
title: 'Success',
message: 'Subscriber was successfully activated.',
}, {
type: 'success'
});
} else {
$.notify({
icon: 'glyphicon glyphicon-warning-sign',
title: 'Failed',
message: 'Subscriber was NOT successfully activated.',
}, {
type: 'danger'
});
}
}
});
}
控制器是:
<?php
include('../../../config.php');
require('../../../classes/mysql.php');
include('../model/member.php');
$subscriber = new member($_POST['id_member'], $db_data);
$subscriber_result = $subscriber->activateSubscriber();
echo(json_encode($subscriber_result))
如果
status
为varchar,则将其值放在单引号中'
试试这个:
$sql = "UPDATE `tbl_member`
SET `status` = '1'
WHERE `id_member` = {$this->id_member}";
尝试在ajax调用中添加(addasync:false)并检查
$.ajax({
url: "../../system/components/subscribers/controller/activate_subscriber.php",
type: "POST",
async:false,
...
});
我终于解决了这个问题。这很有趣。在我的构造函数中,我有一个检索当前成员详细信息的函数。我的数据库中不再存在一个字段。它在试图检索while循环中不存在的字段的值时被卡住了
谢谢大家的帮助和帮助。我很感激 {$this->id_member};试着把它扔出去;哦,你是说<代码>其中id\u成员`={$this->id\u成员};“;`to WHERE
id\u member
={$this->id\u member}”;status
字段的类型是什么?向我们显示echo$sql
的结果我的坏@mith状态是tinyintecho$sql
显示{“status”:“success”}
和查询@PhpDev{“status”:“success”}是json响应OK。然后尝试$sql=“更新tbl\u成员
设置状态
=1,其中id\u成员
={$this->id\u成员}”@phpdev您可以发布执行上述过程的ajax/javascript代码吗?您可以检查发布到“$\u post['id\u member']”的值是多少吗?它是成员id,是96。虽然这个代码片段是受欢迎的,并且可能提供一些帮助,但它将是如何以及为什么解决这个问题的。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。
if ($this->id_member != null) {
$sql = "UPDATE `tbl_member`
SET `status` = 1
WHERE `id_member` = ".$this->id_member;
// echo $sql;
$result = $this->database->query($sql); }
$.ajax({
url: "../../system/components/subscribers/controller/activate_subscriber.php",
type: "POST",
async:false,
...
});