Php Drupal hook_向db提交写操作

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

我现在正在接受构建自定义模块的挑战

我从一开始就非常小,只是为了尝试和理解drupal挂钩和模块

我用一个文本条目创建了一个简单表单,唯一的验证是该字段不是空的

在提交表单上,我想写入一个自定义表。该表已存在。
我的字段是:
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