使用php-if语句更新mysql表


update mysql table with php if statement

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

现在,我想根据ssn列中倒数第二位的奇数或偶数,用1或0更新阳性列。

$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