首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新值的PHP脚本不能正常工作

问更新值的PHP脚本不能正常工作
EN

Stack Overflow用户
提问于 2013-10-09 00:58:02
回答 2查看 83关注 0票数 0

下面是我要执行的PHP脚本。它很简单,但我忽略了一些东西,因为它不能正常工作。如果用户切换单选按钮,则调用此脚本并刷新页面。但是,MySQL中的“已启用”列从不更新从"0“到"1”的内容。如果我手动将已启用列的值输入为"1“,则脚本执行将已启用列的值更新回"0”,但不会再次将其更新为"1“。我在看什么?

代码语言:javascript
复制
$sql="SELECT enabled FROM somecolumn.persist";
$row = mysql_fetch_row($sql);
$enabled=$row[0];

if ($enabled==0) {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '1' WHERE `persist`.`enabled` =0";
} else {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '0' WHERE `persist`.`enabled` =1";
}
mysql_query($query);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-09 01:15:09

似乎您所做的只是切换给定表中所有记录的列值。为什么还要费心从数据库读取值然后进行更新呢?你可以直接做一个更新。

代码语言:javascript
复制
$sql = "UPDATE `somecolumn`.`persist` SET `enabled` = ABS(`enabled` - 1)";
$result = mysql_query($sql);

if (false === $result) { // something went wrong
    throw new Exception('Query "'. $sql . '" failed with error: ' . mysql_error());
}

这样就可以把所有的1转到0和0到1‘,而不必做任何SELECT。

票数 1
EN

Stack Overflow用户

发布于 2013-10-09 01:03:23

根据这个:http://php.net/manual/bg/function.mysql-fetch-row.php

您应该编写以下代码:

代码语言:javascript
复制
$sql="SELECT enabled FROM somecolumn.persist";
$result = mysql_query($sql);
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$row = mysql_fetch_row($result);
$enabled=$row[0];

if ($enabled==0) {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '1' WHERE `persist`.`enabled` =0";
} else {
    $query="UPDATE `somecolumn`.`persist` SET  `enabled` =  '0' WHERE `persist`.`enabled` =1";
}
mysql_query($query);

注意到,msql_函数被弃用,并将在php的未来版本中被删除。您应该考虑更改代码以使用PDO或MySQLi库.。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19261185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档