2017-05-23 11 views
-1

テーブル名が変数と結びついているため、以下のpdo updateステートメントは機能しません。誰もそれを動作させる方法を知っていますか?変数をテーブル名として使用するpdo updateステートメント

$stmt1 = $DB_CON_C->prepare('UPDATE `".$account_list."` 
    SET property_type=:property_type; property_address=:property_address, property_city=:property_city, property_state=:property_state, property_zip=:property_zip WHERE contract_number=:order_list'); 
    $stmt1->bindParam(':account_list', $account_list, PDO::PARAM_STR); 
    $stmt1->bindParam(':order_list', $order_list, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_class', $property_class, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_type', $property_type, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_address', $property_address, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_city', $property_city, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_state', $property_state, PDO::PARAM_STR); 
    $stmt1->bindParam(':property_zip', $property_zip, PDO::PARAM_STR); 
    $stmt1->execute(); 

答えて

2

あなたは、ユーザーに、二重の代わりに単一引用符があります:

$stmt1 = $DB_CON_C->prepare('UPDATE `' .$account_list. '` 
    SET property_type=:property_type; property_address=:property_address, property_city=:property_city, property_state=:property_state, property_zip=:property_zip WHERE contract_number=:order_list'); 
1

それとも、ただ単純化し、そして実行します

->prepare("UPDATE {$account_list} SET... 

すなわち、二重引用符を使用します。 {}は必要ありませんが、私は個人的にこれを実際のテーブル名のプレフィックスとして使用するので好きです(("SELECT * FROM {$dbprefix}tablename")

このようにして、クエリ内で文字列を作成する必要はありません。 tはする必要があります。クエリを二重引用符で囲むだけです。

+0

ありがとうございました。この方法は、より良く、より簡単であるようです。 – ubuntujavy

関連する問題