使用php if语句更新mysql表

时间:2013-08-13 23:21:49

标签: php mysql database

我有一个带有名为ssn的int列和一个名为male的列的表。

现在我想用1或0来更新公列,这取决于第二个最后一个数字是奇数还是在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();

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

我还尝试了“在重复时插入忽略”,它只在男性列中保存“1”,而不管ssn列包含什么。

干杯

1 个答案:

答案 0 :(得分:0)

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

但是,不要费心去取得所有的提取和所有个人更新,你可以通过一个声明一举更有效地完成同样的工作:

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