【发布时间】:2016-10-19 02:23:10
【问题描述】:
我环顾四周,注意到一些人遇到了同样的问题,但他们的疏忽似乎不适用于这里。
我有一个 PHP 函数可以将一组值添加到表中。它首先检查值是否为空,如果是,则将它们替换为NULL,以便在表字段中放置null。我将null 放入的每个字段都允许null,但在其中放置0。
这里有一些代码:
public static function AddGame($array, $tId)
{
global $db; // Bring DB into scope
// Get IDs from particular names
$locId = $array['fLocation'];
// Ensure empty values are SQL null
$hTeamId = "'{$array['fHomeTeam']}'";
$vTeamId = "'{$array['fVisitTeam']}'";
$hScore = "'{$array['fHomeScore']}'";
$vScore = "'{$array['fVisitScore']}'";
$hHoldFor = "'{$array['fHomeHoldFor']}'";
$vHoldFor = "'{$array['fVisitHoldFor']}'";
// Prepare row for insertion
$row = "'','$tId','$locId',$hTeamId,$vTeamId,'{$array['fDate']}','{$array['fTime']}',$hScore,$vScore,'{$array['fGameType']}',$hHoldFor,$vHoldFor";
$stmt = $db->prepare("INSERT INTO `game` VALUES($row)");
if($stmt->execute()) return true;
else return false;
}
我已经在多行调试了这个函数并转储了 $row 字符串,它显示了这个,这是预期的:
'','1','1','21','21','10/10/12','10:30AM','NULL','NULL','pool','NULL ','NULL'
然而,当我检查表格文本类型字段时,字面上的值 NULL 这不是我想要的,而且 int 字段也显示为 0。如果我将值留空或 PHP 的 null 则文本字段显示为空(或正确 null 我想)但整数仍显示为 0。
我认为这只是由于我间接插入值的方式造成的。
这里是 SHOW CREATE TABLE game
更新:
插入“游戏”值('','1','1','','','10/09/12','9:30AM','','','pool','winner池 A','池 B 的获胜者')【问题讨论】: