0

PHP には精通していますが、mysqli ライブラリを使用するのはこれが初めてです。データベースに行を挿入しようとしていますが、挿入されません。私のコードは次のようになります (データベースのログインの詳細はセキュリティのために変更されています):

... // $_REQUEST variables processed
$oConn = new mysqli("localhost","user","password","mydatabase") or die("Error " . mysqli_error($oConn));

$rProvider = $oConn->query("select * from providers where id = $iProviderID");
$aProvider = mysqli_fetch_array($rProvider);
// $aProvider has all the information from the provider that I wanted, so my database connection is working

$oConn->query("insert into bookings (provider_id, provider_rates_id, secret, preferred_date, alternate_date, adults, children, transfer_required, firstname, lastname, email, phone, comments) values
    ($iProviderID, $iRatesID, $sSecret, '$sDate', '$sAltDate', $iAdults, $iChildren, $iTransfer, '$sFirstNameSQL', '$sLastNameSQL', '$sEmailSQL', '$sPhoneSQL', '$sCommentsSQL'");

$iBookingID = $oConn->insert_id;

エラーは発生せず、$iBookingID は 0 です。行がデータベースに挿入されません。PHP マニュアルと StackExchange の同様の投稿を確認しましたが、この問題を解決できませんでした。

4

4 に答える 4

1
    ... // $_REQUEST variables processed
    $oConn = new mysqli("localhost","user","password","mydatabase") or die("Error " . $oConn->error);

    $oConn->query("insert into bookings (provider_id, provider_rates_id, secret, preferred_date, alternate_date, adults, children, transfer_required, firstname, lastname, email, phone, comments) values
        ('$iProviderID', '$iRatesID', '$sSecret', '$sDate', '$sAltDate', '$iAdults', '$iChildren', '$iTransfer', '$sFirstNameSQL', '$sLastNameSQL', '$sEmailSQL', '$sPhoneSQL', '$sCommentsSQL')");

    $iBookingID = $oConn->insert_id;
    echo $iBookingID;
于 2013-11-13T13:02:36.317 に答える
1

Typo-u は一重引用符と括弧を追加するのを忘れていました。

$oConn->query("insert into bookings (provider_id, provider_rates_id, secret, preferred_date, alternate_date, adults, children, transfer_required, firstname, lastname, email, phone, comments) values
    ('$iProviderID', '$iRatesID', '$sSecret', '$sDate', '$sAltDate', '$iAdults', '$iChildren', '$iTransfer', '$sFirstNameSQL', '$sLastNameSQL', '$sEmailSQL', '$sPhoneSQL', '$sCommentsSQL')");
于 2013-11-13T12:43:06.897 に答える
0

コードにタイプミスがあります。クエリの値の部分の ")" を閉じていません。

正しいクエリ:

$oConn->query("insert into bookings (provider_id, provider_rates_id, secret, preferred_date, alternate_date, adults, children, transfer_required, firstname, lastname, email, phone, comments) values ($iProviderID, $iRatesID, $sSecret, '$sDate', '$sAltDate', $iAdults, $iChildren, $iTransfer, '$sFirstNameSQL', '$sLastNameSQL', '$sEmailSQL', '$sPhoneSQL', '$sCommentsSQL');");
于 2013-11-13T12:42:49.560 に答える
0

これがphpエラーでない場合は、使用echo $oConn->errorしてmysqlクエリエラーを取得できます!

于 2013-11-13T12:45:16.387 に答える