【发布时间】:2014-08-06 14:01:41
【问题描述】:
我需要插入数据库列而不覆盖其他列的值。这是我的 php 代码,我检查每一列是否必须用“si”覆盖或根本没有值。事情是只有最后一列的值为“si”,所有其他列的值为“null”。我如何只插入一列而不将 null 或 '' 传递给其他列!
if($canSend){
$queryUser="CREATE TABLE `$email` ( lun8semanauno VARCHAR(30),
lun10semanauno VARCHAR(30), lun16semanauno VARCHAR(30),lun18semanauno VARCHAR(30), lun20semanauno VARCHAR(30));";
$queryu=mysql_query($queryUser,$db);
}
//Ahora sumo uno al cupo si es que esta todo bien de arriba:
if($canSend && $horarios == "Lunes 8:30hs-Clase grupal"){
$nuevocupolun8=$info['cuposLun8']+1;
$queryRestar="UPDATE `cupos` SET `cuposLun8`='$nuevocupolun8' WHERE `cupos`.`cuposLun8` = '$cupolun8';";
$restar=mysql_query($queryRestar,$db);
$queryAdd="INSERT INTO `lahiguera_hor`.`$email` (`lun8semanauno`) VALUES ('si');";
$querya=mysql_query($queryAdd,$db);
}
if($canSend && $horarios == "Lunes 10hs-Meditacion"){
$nuevocupolun10=$info['cuposLun10']+1;
$queryRestar="UPDATE `cupos` SET `cuposLun10`='$nuevocupolun10' WHERE `cupos`.`cuposLun10` = '$cupolun10';";
$restar=mysql_query($queryRestar,$db);
$queryAdd="$queryAdd="INSERT INTO `lahiguera_hor`.`$email` (`lun10semanauno`) VALUES ('si');";
$querya=mysql_query($queryAdd,$db);
}
if($canSend && $horarios == "Lunes 16hs-Futuras mamas"){
$nuevocupolun16=$info['cuposLun16']+1;
$queryRestar="UPDATE `cupos` SET `cuposLun16`='$nuevocupolun16' WHERE `cupos`.`cuposLun16` = '$cupolun16';";
$restar=mysql_query($queryRestar,$db);
$queryAdd="INSERT INTO `lahiguera_hor`.`$email` (`lun16semanauno`) VALUES ('si');";
$querya=mysql_query($queryAdd,$db);
}
if($canSend && $horarios == "Lunes 18hs-Clase grupal"){
$nuevocupolun18=$info['cuposLun18']+1;
$queryRestar="UPDATE `cupos` SET `cuposLun18`='$nuevocupolun18' WHERE `cupos`.`cuposLun18` = '$cupolun18';";
$restar=mysql_query($queryRestar,$db);
$queryAdd="INSERT INTO `lahiguera_hor`.`$email` (`lun18semanauno`) VALUES ('si');";
$querya=mysql_query($queryAdd,$db);
}
if($canSend && $horarios == "Lunes 20hs-clase grupal"){
$nuevocupolun18=$info['cuposLun20']+1;
$queryRestar="UPDATE `cupos` SET `cuposLun20`='$nuevocupolun20' WHERE `cupos`.`cuposLun20` = '$cupolun20';";
$restar=mysql_query($queryRestar,$db);
$queryAdd="INSERT INTO `lahiguera_hor`.`$email` (`lun20semanauno`) VALUES ('si');";
$querya=mysql_query($queryAdd,$db);
}
【问题讨论】:
-
你希望别人有什么,不同于 null ?!
-
如果您是
INSERTing,那么另一列将没有值。你确定你不应该看UPDATE吗? -
$queryAdd="$queryAdd="INSERT INTOlahiguera_hor.$email` (lun10semanauno) VALUES ('si');";` 这是完全错误的......你的报价有冲突......跨度> -
UPDATE 将更改与条件匹配的现有行中的值,其中 INSERT 将创建一个具有指定值的新行(以及所有其他字段的默认值,NULL 除非您在创建表时另有指定/场地)。如果您想要在一行中设置值,请使用一个 INSERT 和一系列 UPDATE。如果需要多行,则需要在 INSERT 语句中为所有字段指定值(否则将使用默认值)。您可以使用 INSERT.... SELECT... 表示法而不是 INSERT... VALUES(...) 使用来自其他行的数据自动填充它们。
-
@ChrisFlynn 这基本上是一个答案!