php - 使用 php if 语句更新 mysql 表

标签 php mysql database

我有一个表,其中有一个名为 ssn 的 int 列和一个名为male 的列。

现在我想用 1 或 0 更新male 列,具体取决于 ssn 列中倒数第二个数字是奇数还是偶数。

$sql = "SELECT * FROM db";
$result = $DBH->prepare($sql); 
$result->execute(); 
foreach($result as $row) {
$male = $row['ssn'];
$male = substr($male, -2, 1);
    if ( $male & 1 ) {
                          $gender = 1;//odd
                         }else
                         {
                          $gender = 0;};

$results= $DBH->prepare("UPDATE loandb_enkatsvardb SET male = $gender ")or die(mysql_error());
$results->execute();

加载很长时间后收到的错误是“内部服务器错误”。

我还尝试了“插入忽略重复项”,无论 ssn 列包含什么内容,它都只在male 列中保存“1”。

干杯

最佳答案

查询中没有 WHERE 子句,因此每次执行该 UPDATE 语句都将更新表中的所有行。您的 UPDATE 实际上应该采用 WHERE unique_id = id_value 的形式。

但是,您不必费心所有的获取和所有单独的更新,而是可以通过一条语句一次性更有效地完成同样的事情:

UPDATE loandb_enkatsvardb SET male = SUBSTR(ssn,-2,1) MOD 2

关于php - 使用 php if 语句更新 mysql 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18220873/

相关文章:

javascript - Jquery - 清除或删除 URL 参数

php - mPDF:隐藏表格行(CSS 显示:无)不起作用

php - 在 yii2 中编写具有多个 where 条件的查询

mysql - #1054 - MySQL 中 'proximite' 中的未知列 'where clause'

mysql - SQL查询仅根据月份和日期获取数据

php - 如何选择更多条件的用户

php - 无法使用关联数组通过 PDO 插入数据

php - Laravel 5.2 中的 MySQL 摘要查询

python - 在 Windows 上使用 Python 通过 ssh 连接到数据库时出错

php - 如何在 MySQL + PHP 中使用大表