Php Drupal hook_向db提交写操作
我现在正在接受构建自定义模块的挑战 我从一开始就非常小,只是为了尝试和理解drupal挂钩和模块 我用一个文本条目创建了一个简单表单,唯一的验证是该字段不是空的 在提交表单上,我想写入一个自定义表。该表已存在。Php Drupal hook_向db提交写操作,php,mysql,drupal,Php,Mysql,Drupal,我现在正在接受构建自定义模块的挑战 我从一开始就非常小,只是为了尝试和理解drupal挂钩和模块 我用一个文本条目创建了一个简单表单,唯一的验证是该字段不是空的 在提交表单上,我想写入一个自定义表。该表已存在。 我的字段是: nid int(11) eid int(11)主键自动递增 标题varchar(50) 这是我的表格: function my_module_my_form($form_state) { $form['esp'] = array( '#type' => 'fiel
我的字段是:
nid int(11)
eid int(11)主键自动递增
标题varchar(50) 这是我的表格:
function my_module_my_form($form_state) {
$form['esp'] = array(
'#type' => 'fieldset',
'#title' => t('Add a ESP'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
$form['esp']['title'] = array(
'#type' => 'textfield',
'#title' => t('ESP Name'),
'#required' => TRUE,
'#default_value' => '',
'#description' => "Enter the ESP Name",
'#size' => 20,
'#maxlength' => 20,
);
$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
这是我设置的hook\u submit()
:
function my_module_my_form_submit($form, $form_state) {
db_query("INSERT INTO my_module_esp (title) VALUES (".$form_state['values']['title'].")");
drupal_set_message(t('The form has been submitted.'));
}
但这不起作用。。。有什么建议吗?
另外,我想将最新的nid添加到此表中,如何获取该值并在db中更新它,以使其不影响任何其他模块
任何帮助都将不胜感激您需要考虑表单的层次结构。尝试使用:
function my_module_my_form_submit($form, $form_state) {
db_query('INSERT INTO {my_module_esp} (title) VALUES ("%s")', $form_state['values']['esp']['title']);
drupal_set_message(t('The form has been submitted.'));
}
如果您需要将其分配为nid,那么您应该在代码中实际创建一个节点,以便301真正与某个对象关联。node表中的主键是auto_increment,因此如果您没有在代码中创建节点,那么其他人可以创建一篇博客文章,并将被分配301。使用创建一个节点假设最后输入的节点是300,那么我想将其指定为节点301,并让drupal知道它现在是计数301,不会将301指定为nid。我在我的$form_state上打印了一个,我的输入显示在
$form_state['values'['title']下代码>所以我使用db查询如下:db\U查询('INSERT INTO{my\u module\u api\u esp}(title)value(“%s”),$form\u state['VALUES']['title'])代码>但我仍然没有看到将其插入我的数据库:(我从来没有想到这会如此令人沮丧。谢谢你的建议,我还有什么可以尝试或应该知道的,以使这项工作?Drupal消息是否正在设置,至少告诉你表单已提交?嗨,Laxman,这有点奇怪。我现在可以写入数据库,但Drupal消息没有显示。不过,我目前对此并不太担心。我已经在drupal周围寻找了构建.module的指南,以及如何将其构建为节点类型。我想知道您是否可以帮助我或指导我找到一些我没有看到的东西。这确实是另一个问题的基础,尽管我知道至少有一些问题关于在模块中创建节点类型的问题。我建议在此处搜索,在模块中创建内容类型时使用Google