Php 更新查询不';行不通
今天我在PHP方面遇到了一个大问题。我正在尝试更新MySQL数据库上的一行。最大的问题是,如果我直接在phpMyAdmin中插入,而不是在我的PHP脚本中插入,则查询可以工作 按照我的查询(这是$sqlQuery的值): 在我的脚本中,我创建了一个循环来生成“SET”和“WHERE”之间的代码,因为它来自数组 另外,在您询问我连接是否已打开之前,我已使用此代码(以下)进行检查并返回“已打开”: 运行查询的脚本:Php 更新查询不';行不通,php,mysql,database,Php,Mysql,Database,今天我在PHP方面遇到了一个大问题。我正在尝试更新MySQL数据库上的一行。最大的问题是,如果我直接在phpMyAdmin中插入,而不是在我的PHP脚本中插入,则查询可以工作 按照我的查询(这是$sqlQuery的值): 在我的脚本中,我创建了一个循环来生成“SET”和“WHERE”之间的代码,因为它来自数组 另外,在您询问我连接是否已打开之前,我已使用此代码(以下)进行检查并返回“已打开”: 运行查询的脚本: if (mysql_query($sqlQuery, $conn->conne
if (mysql_query($sqlQuery, $conn->connection)) {
$sqlResult = array(
"status" => "ok",
"result" => "edited"
);
} else {
$sqlResult = array(
"status" => "error",
"result" => "$sqlQuery"
);
}
它总是返回“else”数组(status=error,result=sqlQuery)。为什么要设置
id='64',其中id='64'
?Id是INT
无论如何,您不应该引用它们
另外,将
“result”=>“$sqlQuery”
更改为“result”=>$sqlQuery
,并执行var\u转储($sqlQuery)
,以协助调试。为什么要设置id='64',其中id='64'
?Id是INT
无论如何,您不应该引用它们
另外,将
“result”=>“$sqlQuery”
更改为“result”=>$sqlQuery
,并执行var\u dump($sqlQuery)
以协助调试。您的id
字段是自动递增的主键吗?如果是这样,那么您将无法在查询中设置它(无论如何,您不应该这样做,因为它是WHERE
子句的一部分)。通常,您应该只更新实际更改的字段(并且主键值通常不应作为更新的一部分更改)。您的id
字段是自动递增的主键吗?如果是这样,那么您将无法在查询中设置它(无论如何,您不应该这样做,因为它是WHERE
子句的一部分)。通常,您应该只更新实际正在更改的字段(并且主键值通常不应该作为更新的一部分更改)。您应该echo mysql_error()
在尝试调试之前输出错误消息,但您的错误可能是由column='0'
引起的,因为column
在MySQL中是一个保留字,您必须在它周围加上反标记,如`column`='0'
您应该echo MySQL\u error()
在尝试调试之前输出错误消息,但您的错误可能是由列='0'
引起的,因为列
在MySQL中是一个保留字,所以您必须在其周围加上背景标记,如'column`='0'
以了解详细信息?出于好奇,您是否尝试过直接针对MySQL数据库(命令行或MySQL Workbench)运行查询?详细信息请考虑?出于好奇,您是否尝试过直接针对MySQL数据库(命令行或MySQL Workbench)运行查询?我更改了一些列的名称。“my_table”、“Other_column”和“column”不是真名(但我认为真名也没有保留)。@Lucas好的,很高兴知道。你能给我们看一下mysql\u error()的输出吗??默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家@卢卡斯,你应该把这篇文章作为对这个问题的回答,并接受它。我已经改变了一些专栏的名称。“my_table”、“Other_column”和“column”不是真名(但我认为真名也没有保留)。@Lucas好的,很高兴知道。你能给我们看一下mysql\u error()的输出吗??默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家@Lucas你应该把它作为这个问题的答案发布并接受它。我试着按照你之前说的做(我运行一个循环来检查是否是数字并删除引号)。默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家!我试着按照你之前说的做(我运行一个循环来检查是否是数字并删除引号)。默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家!默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家!默认情况下,MAMP设置为隐藏错误。我不知道!对不起,伙计们!出现错误(在我使用本教程之后:),我修复了错误。问题是因为连接已关闭。我关闭了上一个窗口,打开了一个新窗口并执行了我的查询。它工作得很好!谢谢大家!
if (!$conn->connection) echo "closed";
else echo "opened";
if (mysql_query($sqlQuery, $conn->connection)) {
$sqlResult = array(
"status" => "ok",
"result" => "edited"
);
} else {
$sqlResult = array(
"status" => "error",
"result" => "$sqlQuery"
);
}