0

登録フォームのように drupal 7 で 1 つのカスタム モジュールを開発していますが、すべてが正しく機能していますが、db_table にレコードを挿入できません。drupal 7 で次のコードを使用しています

function reg_fields_form_submit($form,&$form_state){
    $name = trim($form_state['values']['name']);
    $phone = trim($form_state['values']['phone']);
    $email = trim($form_state['values']['email']);
    $query = "INSERT INTO {registration} (name,phone,email) VALUES ('%s', '%s', '%s')";
    $result = db_query($query, array($name, $phone, $email));
if ($result !== FALSE){
    drupal_set_message('data saved successfully.');}

しかし、私のテーブルでは、挿入された値は毎回 %S、%S、%S のようになっています。また、挿入された値を同じページに表示したいと考えています。誰でも私を助けて

4

2 に答える 2

1

Drupal 7 は新しいデータベース API を使用します。これには、db_insert()代わりに使用することが強く推奨される関数が含まれています。db_query("INSERT")

あなたの場合、コードは次のようになります

function reg_fields_form_submit($form,&$form_state){
    $name = trim($form_state['values']['name']);
    $phone = trim($form_state['values']['phone']);
    $email = trim($form_state['values']['email']);
    $result = db_insert('registration')
    ->fields(array(
        name => $name,
        phone => $phone,
        email => $email,
    ))
    ->execute();
    if ($result){
        drupal_set_message('data saved successfully.');}
于 2016-03-07T15:58:17.953 に答える
-1

drupal 7は使用しているように見えますか?名前のないプレースホルダーの場合。だから使用しますか?%sの代わりに、または名前付きプレースホルダーを使用してください。db_query

挿入操作にはdb_insertを使用することをお勧めします。

于 2013-03-22T04:43:29.447 に答える