Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用drupal_write_记录。我的数据库在表单提交时不更新_Php_Mysql_Drupal - Fatal编程技术网

Php 如何使用drupal_write_记录。我的数据库在表单提交时不更新

Php 如何使用drupal_write_记录。我的数据库在表单提交时不更新,php,mysql,drupal,Php,Mysql,Drupal,我在使用drupal,我试图在一个块中创建我自己的表单 我写了一个模块,用一个提交按钮创建一个块 当表单提交时,我试图将值写入数据库 我正在使用这个代码 function my_module_my_form_submit($form, &$form_state) { block_example_insert_credits($credits_record); } function block_example_insert_credits() { global $user;

我在使用drupal,我试图在一个块中创建我自己的表单

我写了一个模块,用一个提交按钮创建一个块

当表单提交时,我试图将值写入数据库

我正在使用这个代码

function my_module_my_form_submit($form, &$form_state) {
    block_example_insert_credits($credits_record);
}

function block_example_insert_credits() { 
  global $user;
  $credits_record = array(
    'nid' => $node->nid,
    'uid' => $user->uid,
    'credits' => $form_state['values']['bids'],
  );
  drupal_write_record('example_table', $credits_record, 'nid');
}

表单提交并验证,表和列存在于my db中。当我提交表单时,没有任何东西被发送到数据库,为什么我的代码不正确?

我是一个drupal新手,如果我错了,请道歉…应该从form\u submit传递到insert方法的$node或&$form\u状态不是吗?…也许你可以使用credit records数组的watchdog检查值是否正确传递…干杯我是drupal新手,如果我错了,请道歉错误…应该从form_submit传递到insert方法的$node或&$form_状态不是吗?…也许您可以使用credit records数组的watchdog检查值是否正确传递…干杯

有几件事不太正确:

  • 您没有将任何参数传递给
    block\u示例\u insert\u credits()
  • 您在
    my\u module\u my\u form\u submit()
    中没有对
    $credits\u record
    的引用,因此不会向插入函数传递任何内容
  • 您试图从一个不存在的函数访问
    $form\u state
  • 任何地方都没有对节点对象的引用,因此无法使用它
    $node
    不是全局可用的变量,如果需要节点对象,它必须来自保存在表单中的值,或者来自
    菜单\u get\u object()
    函数(如果块显示在节点页面上)
  • 尝试此代码,看看您是否运气好:

    function my_module_my_form_submit($form, &$form_state) {
      block_example_insert_credits($form_state);
    }
    
    function block_example_insert_credits($form_state) {
      global $user;
      $node = menu_get_object();
      $credits_record = array(
        'nid' => $node->nid,
        'uid' => $user->uid,
        'credits' => $form_state['values']['bids'],
      );
      drupal_write_record('example_table', $credits_record, 'nid');
    } 
    

    希望能有所帮助。

    有几件事不太对劲:

  • 您没有将任何参数传递给
    block\u示例\u insert\u credits()
  • 您在
    my\u module\u my\u form\u submit()
    中没有对
    $credits\u record
    的引用,因此不会向插入函数传递任何内容
  • 您试图从一个不存在的函数访问
    $form\u state
  • 任何地方都没有对节点对象的引用,因此无法使用它
    $node
    不是全局可用的变量,如果需要节点对象,它必须来自保存在表单中的值,或者来自
    菜单\u get\u object()
    函数(如果块显示在节点页面上)
  • 尝试此代码,看看您是否运气好:

    function my_module_my_form_submit($form, &$form_state) {
      block_example_insert_credits($form_state);
    }
    
    function block_example_insert_credits($form_state) {
      global $user;
      $node = menu_get_object();
      $credits_record = array(
        'nid' => $node->nid,
        'uid' => $user->uid,
        'credits' => $form_state['values']['bids'],
      );
      drupal_write_record('example_table', $credits_record, 'nid');
    } 
    
    希望有帮助