1

私は次のような名前付きプレースホルダーを使用しています:

    $job['services_flag'] = 0;

    $SQL = "INSERT INTO jobs (
                        services_flag
                    )
                    VALUES (
                        :services_flag
                    )";

    $STH = $DBH->prepare($SQL);
    $STH->execute($job);

ただし、これはを挿入することを主張し1ます。

名前付きプレースホルダーを使用しない場合:

    $SQL = "INSERT INTO jobs (
                        services_flag
                    )
                    VALUES (
                        0
                    )";

    $STH = $DBH->prepare($SQL);
    $STH->execute();

次に、を挿入し0ます。え?

更新:services_flag私のSQLデータベースのフィールド のデータ型はですBIT。それが何か違いを生むかどうかはわかりません。

4

2 に答える 2

1

これはタイプの既知のバグです。使用する必要があります。BITbindParam

于 2012-04-06T18:53:53.997 に答える
0

それに値をバインドする必要があります。

$STH->bindValue(':services_flag', $job['services_flag']);
$STH->execute();

それはそれを行う1つの方法です。execute() で渡されたプレースホルダーに値がマップされた配列も見ました。

于 2012-04-06T18:54:35.357 に答える