correct sql query

时间:2019-04-21 作者:Jaron

不久前我编写了数据库查询,现在我想对其进行改进。

但我做错了什么,我需要帮助。

    class tags{

       private $wpdb;

      public function __construct(){

         global $wpdb; 
         global $table; 

        $this->wpdb = $wpdb; 

        $table = \'tags\'; 
        $this->table_tags = $table;


         }


        public function some(){

        // If I delete the value after the decimal point then it does not work. Is correct query and what use this query witch "WHERE"?

    $how_much = $this->wpdb->get_var($this->wpdb->prepare("SELECT COUNT(*) FROM `".$this->table_tags."`", $this->table_tags));           

        }

        public function some2(){

           //here i need display some, work but I do this correct?

          $tags = $this->wpdb->get_results($this->wpdb->prepare("SELECT * FROM `".$this->table_tags."` ORDER BY id DESC LIMIT %d, %d", $from, $in_site), ARRAY_A);


        }

        public function some3(){

        // here i want add some, work too

      $data  = array( \'name\' => $name );

      $data2 = \'%s\';

      $this->wpdb->query($this->wpdb->prepare(" INSERT INTO `".$this->table_tags."` (`name`) VALUES (".$data2.") ", $data ));


        }


    public function other(){

          // is correct? delete


              $this->wpdb->delete($this->table_tags, array(\'id\' => $id));

         // and update

              $this->wpdb->update( $this->table_tags, array( \'name\' => $name ), array( \'id\' => $id )); 


   }

}
还有这个问题。

在里面$wpdb->delete$wpdb->update 未使用prepare()query() ?

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您应该使用prepare 仅当您使用SQL查询时-此函数接受查询和参数,并返回一个由给定参数填充的安全SQL查询。

其结果是SQL查询。因此,无论何时创建SQL查询并在其中放置一些参数,都可以(而且应该)使用它。

具有$wpdb->delete$wpdb->update 您不需要创建任何包含SQL查询的字符串-这两个函数都只接受参数以及创建并运行查询-因此无需准备。

如果您使用$wpdb->insert, 那么你也不需要准备——没有什么需要准备的。

但是,如果您像在代码中那样使用原始SQL进行插入,那么是的,您应该始终准备这样的查询。

相关推荐

是否可以使用WP_QUERY对帖子的父级字段进行选择?

我想使用WP_Query 用于在管理页面上显示,我想包括分页参数。我有两个限制:我只想检索已发布帖子的修订,即其父项(帖子ID在post_parent 字段-包含publish 在its中post_status 领域我想忽略发布帖子时自动生成的修订,即post_date 与父级的匹配。通常,在获取帖子数组后,我只需过滤掉这些修订,但我想在带有分页的管理列表表中显示这些元素,所以我想使用WP_Query\'s对此表示支持。在SQL中,我会使用这样的内部联接来获取父帖子:SELECT * FROM {$wpd