【问题标题】:How to insert the values into database in drupal 7?如何在 drupal 7 中将值插入数据库?
【发布时间】:2013-03-22 03:48:57
【问题描述】:

我在 drupal 7 中开发一个自定义模块,就像注册表一样,所有的东西都可以正常工作,但是我无法在我的 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 一样每次如何解决这个问题。而且我想在同一页面中显示插入的值。谁来帮帮我

【问题讨论】:

标签: php database drupal-7


【解决方案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.');}

【讨论】:

    【解决方案2】:

    看起来像drupal 7 使用?对于未命名的占位符。所以用?而不是 %s 或使用命名占位符。db_query

    推荐使用db_insert进行插入操作。

    【讨论】:

    • 我修复了插入值的问题,现在我想在提交后显示插入的值。我正在使用页面回调调用一些函数来使用 drupal_get_form 但我做不到。你知道给一些建议
    • 如果您尝试在表单本身中显示输入值,您应该检查this
    猜你喜欢
    • 2020-07-10
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多