【问题标题】:cant insert into custom table using wpdb无法使用 wpdb 插入自定义表
【发布时间】:2013-03-05 17:25:03
【问题描述】:

我为我的 WordPress 插件创建了一个自定义表,并将其命名为“recp_clients”。不确定这是否重要,但我没有使用“wp_”前缀。

在我处理一些表单数据的 php 文件中,我想使用 $wpdb 来插入帖子数据,而不是使用通过“mysql_connect”等连接的旧样式。

问题是它不起作用。

编辑: 不确定是否重要,但此代码位于一个 php 文件中,该文件位于我的主插件文件夹中的一个名为 include 的文件夹中。该文件是使用 ajax 从 .js 文件中调用的。不确定这是否与 $wpdb 不起作用的原因有关,但我想如果它很重要,我会添加此信息。

这是我所拥有的:

$hisname=$_POST['hisname'];
$hername=$_POST['hername'];
$lastname=$_POST['lastname'];

global $wpdb

$wpdb->insert('recp_clients', array('client_hisname' => $hisname, 'client_hername' => $hername, 'client_lastname' => $lastname));

我也试过这个:

$hisname=$_POST['hisname'];
$hername=$_POST['hername'];
$lastname=$_POST['lastname'];

global $wpdb
$recp_clients_table = $wpdb->prefix . ‘recp_clients’;

$wpdb->insert($recp_clients_table, array('client_hisname' => $hisname, 'client_hername' => $hername, 'client_lastname' => $lastname));

非常感谢任何帮助。预先感谢。

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    您缺少 WHERE 子句。除非您使用相同的数据更新所有行,否则您需要这个。如果不包括在内,WP 可能不会运行查询。

    $wpdb->update(
      'recp_clients', 
      array(
        'client_hisname' => $hisname, 
        'client_hername' => $hername, 
        'client_lastname' => $lastname),
      array('id' => '54') // This is your WHERE clause
    );
    

    【讨论】:

    • 我是个白痴。这应该是一个插入语句,而不是更新。作为插入语句,它不像上面列出的那样工作。
    • 'hisname=$_POST['hisname'];' 是这里的错字吗?你错过了 $
    • 是的,当我从文件中复制并粘贴代码时,我猜它并没有出现。固定。
    • 不确定是否重要,但此代码位于一个 php 文件中,该文件位于我的主插件文件夹中的一个名为 include 的文件夹中。该文件是使用 ajax 从 .js 文件中调用的。不确定这是否与 $wpdb 不起作用的原因有关,但我想我会添加。
    • 那么执行“print_r($wpdb)”什么也没给你?在这种情况下,您需要包含 WP 标头。在此处阅读更多信息:codex.wordpress.org/Integrating_WordPress_with_Your_Website
    猜你喜欢
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2020-01-12
    • 2015-06-25
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2014-08-18
    相关资源
    最近更新 更多