【问题标题】:function query() on a non-object error非对象错误上的函数查询()
【发布时间】:2010-08-09 22:21:31
【问题描述】:

我正在尝试为 Wordpress 创建一个插件,该插件允许用户在文本框中输入标题。然后用户单击“提交”,该标题被获取并添加到数据库中。但是目前当你按下提交时,它会返回一个 PHP 错误:

致命错误:在第 49 行的 /home/matthew/public_html/demo/wp-content/plugins/premium-slider/admin.php 中的非对象上调用成员函数 query()

第 49 行代码如下:

$wpdb->query($sql);

然而,根据 Wordpress 的教程,这是完全有效的代码。

这是整个代码段:

function print_admin_form() {
 if (isset($_POST['addnew'])) {

 $new = $_REQUEST['name'];

 $name = escape($new);

  $sql = "INSERT INTO $table_name_cat (name) VALUES('$new')";
  $wpdb->query($sql);
  echo $name; } 
 else {
  echo '<div id="message" class="error" style="width:750px;"><p><strong>Failed to add new slider.</strong></p></div>'; }?>

<div class="wrap">
<h2>Easing Slider</h2>
 <form method="post" action="<?php echo str_replace( '%7E', '~', $_SERVER['REQUEST_URI']); ?>&updated=true">
   <div class="metabox-holder" style="width:402px;float:left;">
    <div class="postbox">
      <h3><span>Slider title:</span></h3>
      <h4 style="margin:10px;">Name:</h4><input type="text" name="name" style="width: 380px;margin:10px;margin-top:0px;"/>
    </div>
 </div>
 <input type="submit" class="button-primary" name="addnew" value="Save Changes" style="" />
 </form>
 </div> <?php }

【问题讨论】:

  • 下次请阅读格式化指南。谢谢。
  • 我没有看到 $wpdb 在任何地方定义。
  • $wpdb 的范围是什么?它在哪里初始化?

标签: php wordpress


【解决方案1】:

试试:

global $wpdb;

作为print_admin_form 函数的第一行。

【讨论】:

  • 是的。这将为该类启用查询功能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多