動作しない私は、PHPコードから、この更新クエリを実行します。更新クエリが
$update_begin_insurance = "UPDATE `vehicles`
SET `begin_insurance_date` = '$begin_insurance'
WHERE `plate` = '$plate'";
$conn->query($update_begin_insurance);
$conn
はPDO
オブジェクトです。
問題は、例外はすべて$conn
によってスローされますが、データベースのvehicles
テーブルは更新されません。だから、phpmyadminで直接このクエリを実行しようとしましたが、正しく動作するので、PHPの問題だと思いますが、どこに問題があるのかわかりません。 私のbegin_insurance_date
列の型はDATE
で、$begin_insurance
は正しい形式の文字列です(YYYY-MM-DD、私は2017-06-10
でこのコードを試しました)。
私はこれが$update_begin_insurance
のecho
であるMySQLのDBMS
を使用しています:
UPDATE `vehicles`
SET `begin_insurance_date` = '2017-06-10'
WHERE `plate` = 'ccccc'
UPDATE
これは私のページの完全なPHPコードです:
<?php
require_once "connect_db.php";
$plate = $_POST["plate"];
$begin_insurance = $_POST["begin_insurance"];
$end_insurance = $_POST["end_insurance"];
$fuel_economy = $_POST["fuel_economy"];
$fuel_type = $_POST["fuel_type"];
$response = array();
try
{
$conn->beginTransaction();
if ($begin_insurance != "")
{
$update_begin_insurance = "UPDATE `vehicles`
SET `begin_insurance_date` = '$begin_insurance'
WHERE `plate` = '$plate'";
$conn->query($update_begin_insurance);
}
if ($end_insurance != "")
{
$update_end_insurance = "UPDATE `vehicles`
SET `end_insurance_date` = '$end_insurance'
WHERE `plate` = '$plate'";
$conn->query($update_end_insurance);
}
if ($fuel_economy != "")
{
$update_fuel_economy = "UPDATE `vehicles`
SET `fuel_economy` = $fuel_economy
WHERE `plate` = '$plate'";
$conn->query($update_fuel_economy);
}
if ($fuel_type != "")
{
$update_fuel_type = "UPDATE `vehicles`
SET `id_fuel` = $fuel_type
WHERE `plate` = '$plate'";
$conn->query($update_fuel_type);
}
$response["post"] = $_POST;
$response["error_code"] = "0";
$response["error_message"] = "none";
$response["driver_error_code"] = "0";
}
catch (PDOException $e)
{
if ($conn->inTransaction())
{
$conn->rollBack();
}
$response["post"] = $_POST;
$response["error_code"] = $e->getCode();
$response["error_message"] = $e->getMessage();
$response["driver_error_code"] = $e->errorInfo[1];
}
echo json_encode($response);
?>
私はidの前に、私は例外がありません(あなたが見ることができるように、私も$_POST
配列を印刷して、パラメータが正しく受信されているかどうかを確認します。 これは何echo json_encode($response)
印刷物である:私はいくつかのINSERT
クエリを実行する他のPHPファイルを持っている、と彼らは正常に動作するため、接続が正常に動作すると確信している
{ "post": { "plate":"ccccc", "begin_insurance":"2017-06-10" }, "error_code":"0", "error_message":"none", "driver_error_code":"0" }
。
コードで生成される最終クエリは何ですか。準備された声明でそれを試しましたか? – Peon
@DainisAbols私は自分の質問を編集しました。私は質問の印刷物を入れました。はい、私は準備文を試しましたが、それでも動作しません。 – Clyky
接続は機能しますか? – chris85