Php 如何使用drupal_write_记录。我的数据库在表单提交时不更新
我在使用drupal,我试图在一个块中创建我自己的表单 我写了一个模块,用一个提交按钮创建一个块 当表单提交时,我试图将值写入数据库 我正在使用这个代码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;
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');
}
希望有帮助