PHP版本:5.4.3mysql Version: 5.5.24
我已经盯着这段代码好几天了,修正了一些小错误,但仍然不明白为什么它不能成功地添加到我的数据库。
破碎的代码:
// All of my posts have been excluded
// Post Example:
// $server = $_POST['server'];
mysqli_query($link, sprintf(
'INSERT INTO `tribe-server-inv`.`serverdb` (' .
//Server Name
'`Record`, `Server`, `Active Server`, `Server Location`, `Deactivated Server`, ' .
//System Overview
'`Operating System`, `Serial Number`, `Model`, `CPU`, `Power Requirements`, `Location`, `Memory`, ' .
'`Total Physical Disk`, ' .
//System Information
'`Antivirus Installed`, `Warrenty Start Date`, `Physical Server`, `Install Date`, `Antivirus Version`, ' .
'`Warrenty End Date`, `Virtual Server`, `Deactivated Date`, ' .
//Availability
'`Operation Availability Days`, `Availability Downtime Days`, `Operation Availability Hours`, ' .
'`Availability Downtime Hours`, ' .
//Support Information
'`Hardware Vender`, `Associated Servers 1`, `System Owner`, `Associated Servers 2`, ' .
'`Database Owner`, `Associated Servers 3`, `Application Owner`, `Associated Servers 4`, ' .
'`Software Owner`, `Associated Servers 5`, ' .
//Network Info
'`IP Address 1`, `MAC Address 1`, `Trunked IP Address 1`, `IP Address 2`, `MAC Address 2`, ' .
'`Trunked IP Address 2`, `IP Address 3`, `MAC Address 3`, `Management Port IP Address`, ' .
'`IP Address 4`, `MAC Address 4`, ' .
//Storage Info
'`Sans Storage 1`, `Sans Storage 1 Drive Space 1`, `Sans 1 Initiator Address`, `Sans Storage 2`, ' .
'`Sans Storage 2 Drive Space 2`, `Sans 2 Initiator Address`, ' .
'`Promise Storage 1`, `Promise Storage 1 Drive Space 1`, `Promise 1 Initiator Address`, ' .
'`Promise Storage 2`, `Promise Storage 2 Drive Space 2`, `Promise 2 Initiator Address`, ' .
//System Backup
'`Appassure`, `Backupexec`, `Other Backup`, `Backup Server`, `Replication Backup Server`, ' .
'`Backup Server Location`, `Replication Backup Location`, `Backup Server Size`, ' .
'`Replication Backup Size`, `Offsite / Archive Backups`, `Backup Image`, `Archive Offsite Location`, ' .
'`Backup Image Location`, `Archive Size`, `Backup Misc Info`, `Backup Daily`, ' .
'`Daily Backup Space Used`, `Backup Weekly`, `Weekly Backup Space Used`, `Backup Quarterly`, ' .
'`Quarterly Backup Space Used`, `Backup Yearly`, `Yearly Backup Space Used`, ' .
//Disaster Recovery
'`Number of Users`, `Daily Bandwidth Consumption`, `Equipment Replacement Time`, ' .
'`Total Local Data Storage`, `Vender Disaster Turn Around`, `Vender Disaster Cost`, ' .
'`Total Network Storage`, `Approximate Tech Hours`, `Est Replacement Cost`, ' .
'`Approximate Total Replacement Time`, `Disaster Recovery Scenario 1 Loss of Software`, ' .
'`Disaster Recovery Scenario 2 Loss of Hardware`, `Application`)' .
//Values
'VALUES ' .
//Server Name
'(NULL, ''%s'', ''%s'', ''%s'', ''%s'', ' .
//System Overview
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
//System Information
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ' .
//Availability
'''%s'', ''%s'', ''%s'', ''%s'', ' .
//Support Information
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ''%s'', ' .
//Network Info
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
//Storage Info
'''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ' .
'''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ' .
//System Backup
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ' .
//Disaster Recovery
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ' .
'''%s'', ''%s'', ''%s'', ''%s'', ''%s'', ''%s'')',
//Names
mysqli_real_escape_string($link, $server),
mysqli_real_escape_string($link, $activeServer),
mysqli_real_escape_string($link, $serverLocation),
mysqli_real_escape_string($link, $deactiveServer),
//Overview
mysqli_real_escape_string($link, $operating),
mysqli_real_escape_string($link, $serial),
mysqli_real_escape_string($link, $model),
mysqli_real_escape_string($link, $cpu),
mysqli_real_escape_string($link, $powerReq),
mysqli_real_escape_string($link, $location),
mysqli_real_escape_string($link, $memory),
mysqli_real_escape_string($link, $totPhyDisk),
//System Info
mysqli_real_escape_string($link, $antiVirusInstall),
mysqli_real_escape_string($link, $warrentyStart),
mysqli_real_escape_string($link, $phyServer),
mysqli_real_escape_string($link, $installDate),
mysqli_real_escape_string($link, $antiVirusVersion),
mysqli_real_escape_string($link, $warrentyExpire),
mysqli_real_escape_string($link, $virtualServer),
mysqli_real_escape_string($link, $deactivatedDate),
//Availability
mysqli_real_escape_string($link, $availableDays),
mysqli_real_escape_string($link, $downtimeDays),
mysqli_real_escape_string($link, $availableHours),
mysqli_real_escape_string($link, $downtimeHours),
//Support Info
mysqli_real_escape_string($link, $hardwareVendor),
mysqli_real_escape_string($link, $assoServ1),
mysqli_real_escape_string($link, $systemOwner),
mysqli_real_escape_string($link, $assoServ2),
mysqli_real_escape_string($link, $databaseOwn),
mysqli_real_escape_string($link, $assoServ3),
mysqli_real_escape_string($link, $appOwner),
mysqli_real_escape_string($link, $assoServ4),
mysqli_real_escape_string($link, $softwareOwn),
mysqli_real_escape_string($link, $assoServ5),
//Network Info
mysqli_real_escape_string($link, $IP1),
mysqli_real_escape_string($link, $MAC1),
mysqli_real_escape_string($link, $trunk1),
mysqli_real_escape_string($link, $IP2),
mysqli_real_escape_string($link, $MAC2),
mysqli_real_escape_string($link, $trunk2),
mysqli_real_escape_string($link, $IP3),
mysqli_real_escape_string($link, $MAC3),
mysqli_real_escape_string($link, $manPortIP),
mysqli_real_escape_string($link, $IP4),
mysqli_real_escape_string($link, $MAC4),
//Storage
mysqli_real_escape_string($link, $sanStor1),
mysqli_real_escape_string($link, $driveSpace1),
mysqli_real_escape_string($link, $initiatorAddress1),
mysqli_real_escape_string($link, $sanStor2),
mysqli_real_escape_string($link, $driveSpace2),
mysqli_real_escape_string($link, $initiatorAddress2),
mysqli_real_escape_string($link, $promStor1),
mysqli_real_escape_string($link, $promStorSpace1),
mysqli_real_escape_string($link, $prom1InitAddress),
mysqli_real_escape_string($link, $promStor2),
mysqli_real_escape_string($link, $promStorSpace2),
mysqli_real_escape_string($link, $prom2InitAddress),
//System Backup
mysqli_real_escape_string($link, $appAssure),
mysqli_real_escape_string($link, $backupExec),
mysqli_real_escape_string($link, $otherBackup),
mysqli_real_escape_string($link, $backupServ),
mysqli_real_escape_string($link, $repBackupServ),
mysqli_real_escape_string($link, $backupServLoc),
mysqli_real_escape_string($link, $repBackupLoc),
mysqli_real_escape_string($link, $backupSize),
mysqli_real_escape_string($link, $repBackupSize),
mysqli_real_escape_string($link, $archiveBackup),
mysqli_real_escape_string($link, $backupImage),
mysqli_real_escape_string($link, $arcOffsiteLoc),
mysqli_real_escape_string($link, $backupImageLoc),
mysqli_real_escape_string($link, $arcBackSize),
mysqli_real_escape_string($link, $backupMiscInfo),
mysqli_real_escape_string($link, $backupDaily),
mysqli_real_escape_string($link, $dailySpaceUsed),
mysqli_real_escape_string($link, $backupWeekly),
mysqli_real_escape_string($link, $weeklySpaceUsed),
mysqli_real_escape_string($link, $backupQuarter),
mysqli_real_escape_string($link, $quarterlySpaceUsed),
mysqli_real_escape_string($link, $backupYear),
mysqli_real_escape_string($link, $yearlySpaceUsed),
//Disaster Recovery
mysqli_real_escape_string($link, $numUsers),
mysqli_real_escape_string($link, $bandwidth),
mysqli_real_escape_string($link, $equipReplaceTime),
mysqli_real_escape_string($link, $totalLocStor),
mysqli_real_escape_string($link, $vendorTurn),
mysqli_real_escape_string($link, $venDisCost),
mysqli_real_escape_string($link, $totNetStor),
mysqli_real_escape_string($link, $approxTechTime),
mysqli_real_escape_string($link, $estRepCost),
mysqli_real_escape_string($link, $totReplaceTime),
mysqli_real_escape_string($link, $disasterRecover1),
mysqli_real_escape_string($link, $disasterRecover2),
mysqli_real_escape_string($link, $Applications)));
工作代码:
mysqli_query($link, sprintf(
'INSERT INTO serverdb (' .
//Server Name
'Server,' .
'`Server Location`)' .
//Values
'VALUES ' .
//Server Name
'(''%s'', ''%s'')',
//Names
mysqli_real_escape_string($link, $server),
mysqli_real_escape_string($link, $serverLocation)));
这两组代码的结构完全相同,我不知道是哪里出了问题。
-
确保你可以看到PHP错误。
创建一个故意的语法错误,看看是否可以在屏幕上的日志中找到它。如果不能-配置你的PHP要么记录错误,要么在屏幕上显示错误:error_reporting = E_ALL display_errors = On log_errors = On
- 然后确保你可以再次看到PHP错误。
-
确保你可以看到mysqli错误。以这种方式运行所有查询:
mysqli_query($link, $query) or trigger_error(mysqli_error($link));
- 观察错误并采取适当的措施。
由于时间限制,目前无法重建表。解决这个问题的方法不是修复上面的代码,而是从头开始重写整个查询,不使用mysqli_real_escape_strings。
查询,我得到的工作是张贴在下面。让您松一口气的是,我从零开始构建了另一个用于跟踪客户机计算机的表,该代码将在下面发布。这段代码将是我重做服务器代码的方式,除非我在此之前找到/做出改进。
$q = 'INSERT INTO `tribe-server-inv`.`serverdb` (`Server`,'.
'`Server Location`, `Operating System`, `CPU`, `Memory`, `Total Physical Disk`,
`Serial Number`, `Model`, `Location`, `IP Address 1`, `IP Address 2`,'.
'`IP Address 3`, `IP Address 4`, `Trunked IP Address 1`, `Trunked IP Address 2`, `Management Port IP Address`, `Physical Server`, `Virtual Server`, `Warrenty Start Date`, `Warrenty End Date`, `Active Server`, `Install Date`, `Deactivated Server`, `Deactivated Date`,'.
'`Power Requirements`, `Sans Storage 1`, `Sans Storage 2`, `Sans Storage 1 Drive Space 1`, `Sans Storage 2 Drive Space 2`, `Sans 1 Initiator Address`, `Sans 2 Initiator Address`, `Promise Storage 1`,'.
'`Promise Storage 2`, `Promise Storage 1 Drive Space 1`, `Promise Storage 2 Drive Space 2`, `Promise 1 Initiator Address`, `Promise 2 Initiator Address`, `Operation Availability Hours`, `Operation Availability Days`,'.
'`Availability Downtime Days`, `Availability Downtime Hours`, `Application`, `Associated Servers 1`, `Associated Servers 2`, `Associated Servers 3`, `Associated Servers 4`, `Associated Servers 5`, `Hardware Vender`, `System Owner`, `Database Owner`, `Application Owner`, `Software Owner`, `MAC Address 1`, `MAC Address 2`, `MAC Address 3`,'.
'`MAC Address 4`, `Backup Server`, `Backup Server Location`, `Backup Server Size`, `Replication Backup Server`, `Replication Backup Location`, `Replication Backup Size`, `Offsite / Archive Backups`, `Archive Offsite Location`, `Archive Size`, `Backup Daily`, `Backup Weekly`, `Backup Quarterly`, `Backup Yearly`, `Backup Misc Info`, `Backup Image`, `Backup Image Location`, `Disaster Recovery Scenario 1 Loss of Software`, `Disaster Recovery Scenario 2 Loss of Hardware`, `Daily Backup Space Used`, `Weekly Backup Space Used`, `Quarterly Backup Space Used`, `Yearly Backup Space Used`, `Antivirus Installed`, `Antivirus Version`, `Est Replacement Cost`, `Number of Users`,'.
'`Daily Bandwidth Consumption`, `Total Local Data Storage`, `Total Network Storage`, `Equipment Replacement Time`, `Vender Disaster Turn Around`, `Vender Disaster Cost`, `Approximate Tech Hours`, `Approximate Total Replacement Time`, `Appassure`, `Backupexec`, `Other Backup`)'.
'VALUES ('''.$server.''', '''.$serverLocation.''', '''.$operating.''', '''.$cpu.''', '''.$memory.''', '''.$totPhyDisk.''', '''.$serial.''', '''.$model.''', '''.$location.''', '''.$IP1.''', '''.$IP2.''', '''.$IP3.''', '''.$IP4.''', '''.$trunk1.''', '''.$trunk2.''', '''.$manPortIP.''', '''.$phyServer.''', '''.$virtualServer.''', '''.$warrentyStart.''', '''.$warrentyExpire.''', '''. $activeServer.''', '''.$installDate.''', '''.$deactiveServer.''', '''.$deactivatedDate.''', '''.$powerReq.''', '''.$sanStor1.''', '''.$sanStor2.''', '''.$driveSpace1.''', '''.$driveSpace2.''', '''.$initiatorAddress1.''', '''.$initiatorAddress2.''', '''.$promStor1.''', '''.$promStor2.''', '''.$promStorSpace1.''', '''.$promStorSpace2.''', '''.$prom1InitAddress.''', '''.$prom2InitAddress.''', '''.$availableHours.''', '''.$availableDays.''', '''.$downtimeDays.''', '''.$downtimeHours.''', '''.$Applications.''', '''.$assoServ1.''', '''.$assoServ2.''', '''.$assoServ3.''', '''.$assoServ4.''', '''.$assoServ5.''', '''.$hardwareVendor.''', '''.$systemOwner.''', '''.$databaseOwn.''', '''.$appOwner.''', '''.$softwareOwn.''', '''.$MAC1.''', '''.$MAC2.''', '''.$MAC3.''', '''.$MAC4.''', '''.$backupServ.''', '''.$backupServLoc.''', '''.$backupSize.''', '''.$repBackupServ.''', '''.$repBackupLoc.''', '''.$repBackupSize.''', '''.$archiveBackup.''', '''.$arcOffsiteLoc.''', '''.$arcBackSize.''', '''.$backupDaily.''', '''.$backupWeekly.''', '''.$backupQuarter.''', '''.$backupYear.''', '''.$backupMiscInfo.''', '''.$backupImage.''', '''.$backupImageLoc.''', '''.$disasterRecover1.''', '''.$disasterRecover2.''', '''.$dailySpaceUsed.''', '''.$weeklySpaceUsed.''', '''.$quarterlySpaceUsed.''', '''.$yearlySpaceUsed.''', '''.$antiVirusInstall.''', '''.$antiVirusVersion.''', '''.$estRepCost.''', '''.$numUsers.''', '''.$bandwidth.''', '''.$totalLocStor.''', '''.$totNetStor.''', '''.$equipReplaceTime.''', '''.$vendorTurn.''', '''.$venDisCost.''', '''.$approxTechTime.''', '''.$totReplaceTime.''', '''.$appAssure.''', '''.$backupExec.''', '''.$otherBackup.''')';
新客户端代码:
$sql = "SELECT id FROM `tribe-server-inv`.`client_main` ORDER BY id DESC LIMIT 1";
$result = mysqli_query($link, $sql);
while($row = mysqli_fetch_assoc($result))
{
$id = $row['id']+1;
}
//Client Main
$q1 = "INSERT INTO `tribe-server-inv`.`client_main` (`id` ,`serial` ,`make` ,`model` ," .
"`warrentyStart` ,`warrentyEnd` ,`status` ,`type`)VALUES (".$id." , '" .
$serial."', '".$make."', '".$model."','".$warrentyStart."', '".$warrentyExpire."', '".$status."', '".$type."');";
//Client Deploy
$q2 = "INSERT INTO `tribe-server-inv`.`client_deploy` (`id` , `ticket` ,`techID` ,`installDate` ,`updateDate`)".
"VALUES (".
"'".$id."', '".$ticket."', '".$tech."', '".$installDate."', '".$updateDate."');";
//Client Profile
$q3 = "INSERT INTO `tribe-server-inv`.`client_profile` (`id` ,`username` ,`department` ,`buildID` ,`notes`)" .
"VALUES (" .
"'".$id."' , '".$user."', '".$department."', '".$building."', '".$notes."');";
//Client Hardware
$q4 = "INSERT INTO `tribe-server-inv`.`client_hardware` (" .
"`id` ,`cpu` ,`memory` ,`diskSpace1` ,`diskSpace2` ,`diskSpace3`)".
"VALUES (".
"'".$id."' , '".$cpu."', '".$memory."', '".$diskSpace1."', '".$diskSpace2."', '".$diskSpace3."');";
//Client Software
$q5 = "INSERT INTO `tribe-server-inv`.`client_software` (`id` ,`operating` ,`operating_license` ,`antivirus` ,".
"`antivirus_license` ,`office` ,`office_license`)".
"VALUES (".
"'".$id."', '".$operating."', '".$osLicense."', '".$antivirusInstalled."', '".$antivirusVersion."',".
"'".$officeVersion."', '".$officeLicense."');";
//Client Network
$q6 = "INSERT INTO `tribe-server-inv`.`client_network` (`id` ,`ip` ,`physicalMAC` ,`wirelessMAC` ,`port` ,`dns1` ,".
"`dns2` ,`dns3` ,`dns4`)".
"VALUES (".
"'".$id."', '".$ip."', '".$phyMac."', '".$wireMac."', '".$port."', '".$dns1."', '".$dns2."', '".$dns3."', '".$dns4."');";