下面是我要执行的PHP脚本。它很简单,但我忽略了一些东西,因为它不能正常工作。如果用户切换单选按钮,则调用此脚本并刷新页面。但是,MySQL中的“已启用”列从不更新从"0“到"1”的内容。如果我手动将已启用列的值输入为"1“,则脚本执行将已启用列的值更新回"0”,但不会再次将其更新为"1“。我在看什么?
$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);发布于 2013-10-09 01:15:09
似乎您所做的只是切换给定表中所有记录的列值。为什么还要费心从数据库读取值然后进行更新呢?你可以直接做一个更新。
$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。
发布于 2013-10-09 01:03:23
根据这个:http://php.net/manual/bg/function.mysql-fetch-row.php
您应该编写以下代码:
$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库.。
https://stackoverflow.com/questions/19261185
复制相似问题