【发布时间】:2017-02-17 14:42:26
【问题描述】:
我正在尝试将 POST 的内容写入我们的 mysql 数据库。数据似乎没有插入,我没有收到任何错误。我正在使用的数据库登录也具有远程访问权限。查询本身正在从变量中获取正确的数据。所以我不确定我做错了什么。
我将查询的值写入error_log,当我直接通过工作台插入时插入成功。
[17-Feb-2017 07:02:47 America/Los_Angeles] INSERT INTO
consolidated.ACI_BNF (ConsumerName, AccountNumber,
NotificationType, ConfNumber, PaymentDate, PaymentAmount,
PaymentFee, FundingType, PaymentMethod, ProductMethod,
ImportDate)
VALUES ('JOHN DOE', '00123546', 'CREATE', '000123456', '2017-02-17', '444.37', '4.95 ', 'CREDIT CARD', '', 'ONE_TIME_PAY', '2017-02-17T10:02:47')
PHP 代码
$hostname_Database = "somedb";
$database_Database = "consolidated";
$username_Database = "username";
$password_Database = "password";
$mysqli = new mysqli($hostname_Database, $username_Database,$password_Database, $database_Database);
$sql = "INSERT INTO consolidated.ACI_BNF (ConsumerName, AccountNumber, NotificationType, ConfNumber, PaymentDate, PaymentAmount, PaymentFee,
FundingType, PaymentMethod, ProductMethod, ImportDate)
VALUES ('$AccountHolderName', '$accountNumber', '$notification',
'$ConfirmationNumber', '$PaymentDate', '$PaymentAmount', '$PaymentFee',
'$FundingType', '$PaymentMethod', '$ProductMethod', '$ImportDate')";
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$result = $mysqli->query($sql);
if (!$result) {
printf("%s\n", $mysqli->error);
exit();
}
echo "Query run. Inserted UserID " . $mysqli->insert_id . "<br />";
mysqli_close($mysqli);
【问题讨论】:
-
将查询打印到屏幕上,复制它,然后尝试手动插入。
-
我们无法验证您的 VALUES(代码部分不在此处),因此您可以做的是 1. 在执行查询之前打印查询,以检查错误 2. 执行 @987654324 @插入后,从sql server获取更多信息。 dev.mysql.com/doc/refman/5.7/en/show-warnings.html
-
试试
mysqli_real_escape_string日期 -
已修复。原来 mysql 帐户没有来自远程客户端的插入访问权限。我希望错误日志能告诉我。
标签: php mysql mysqli http-post sql-insert