MYSQL INSERT在特定列上失败

时间:2016-03-09 17:11:29

标签: php mysql insert

我很肯定这是相当直接的,但这是我之前没有遇到的事情,我无法在网上找到任何信息。

我有一个简单的基于PHP的脚本,它将变量传递给mysql_query命令。然后执行查询,并将数据发布到数据库。

表列类型是VARCHAR,尽管我已尝试使用相同结果的数字和文本。

为了解决这个问题,我打印了传递给mysql_query命令的字符串,以确保故障不在那里。该字符串有效,当粘贴到phpmyadmin SQL页面时,无论数据(数字或文本)如何,INSERT都会成功。

这是生成的确切字符串,并存储在名为$query的变量中:

INSERT INTO equipment VALUES ('IS3', 'Ice Screw', '', NULL, '747', '84', 'test', '', NULL, NULL, NULL, NULL, '2016-03-09 17:00:56')

然后将此字符串传递给mysql_query($query)

总而言之,当字符串通过PHP传递给mysql_query命令时,我的INSERT无法将数据插入到特定列。未报告任何错误,并且插入了所有其他列。但是,当通过phpmyadmin SQL页面直接应用于表时,完全相同的字符串是完全有效的。

有人能够指出我正确的方向吗?很难用google或任何其他搜索工具返回相关结果的方式来解决问题 - 大多数结果都是针对完整的INSERT失败或列数据类型(尝试将文本插入INT等)。

任何帮助都非常感激。

我也知道不推荐使用mysql命令。

$EquipmentID=$_POST['equipmentEquipmentID'];
$EquipmentType=$_POST['equipmentEquipmentType'];  
$EquipmentName=$_POST['equipmentEquipmentName'];
$Serial=$_POST['equipmentSerial'];
$Compliance=$_POST['equipmentCompliance'];
$Manufacturer=$_POST['equipmentManufacturer'];
$Date_In_Service=$_POST['equipmentDate_In_Service'];
$Date_Of_Purchase=$_POST['equipmentDate_Of_Purchase'];
$Date_Of_Manufacture=$_POST['equipmentDate_Of_Manufacture'];
if ($EquipmentType == 'Ice Screw') {;
    $Rating=$_POST['equipmentRating'];
    $Serial=$_POST['equipmentSerial'];
    $Size=$_POST['equipmentSize'];
    $add_equipment = "INSERT INTO equipment VALUES ('$EquipmentID', '$EquipmentType', '', "
    .($EquipmentName == NULL ? 'NULL, ' : "'$EquipmentName', ")."
    '$Rating', '$Size', '$Serial', '$Compliance', "
    .($Manufacturer == NULL ? 'NULL, ' : "'$Manufacturer', ").""
    .($Date_In_Service == NULL ? 'NULL, ' : "'$Date_In_Service', ").""
    .($Date_Of_Purchase == NULL ? 'NULL, ' : "'$Date_Of_Purchase', ").""
    .($Date_Of_Manufacture == NULL ? 'NULL, ' : "'$Date_Of_Manufacture', ")."
    '".date("Y-m-d H:i:s")."')";
    echo $add_equipment;
}

0 个答案:

没有答案