wordpress操作数据库

helei 2020-6-21 1,107 6/21

一、sql语句处理,防止sql注入攻击。

$sql = $wpdb -> prepare("query",[%d,%d,%s])

例如:

$sql = $wpdb -> prepare("SELECT * FROM `user` WHERE `username` = %s AND `password` = %s", $username, $password);

用这种方式,函数可以判断$username与$password是否是纯参数,不能作为执行语句处理。

二、获取单一数据,在一般sql语句就只返回一个数值时使用。

$var = $wpdb -> get_var("query");

例如:

$var = $wpdb -> get_var("SELECT count(*) FROM `user`");

这个函数直接返回值,可以直接使用。

注:其实get_var并不是仅仅只能用于就返回一个数值的sql语句,而是他默认只返回第一行最左边的元素。如果希望他返回其他元素,可以使用get_var("query", x, y)来实现。

三、获取一行数据,在一般sql语句就只返回特定对象时使用。

$sql = $wpdb -> get_row("query", output_type);

例如:

$var = $wpdb -> get_row("SELECT * FROM `user` WHERE `userid` = 1", ARRAY_A);

output_type:三个预定义的常量之一。默认值为OBJECT。

OBJECT —— 返回的结果以对象形式输出

ARRAY_A ——返回的结果以关联数组形式输出

ARRAY_N —— 返回的结果以数值索引数组形式输出

我通常使用OBJECT或是ARRAY_A,访问方式分别为$var -> username(output_type为OBJECT时)或是$var["username"](output_type为ARRAY_A时)

注:其实get_row并不是仅仅只能用于就返回一行的sql语句,而是他默认只返回第一行的集合。如果希望他返回其他行,可以使用get_row("query", output_type, y)来实现。

四、获取一列数据,在一般sql语句就只返回特定属性时使用。

$sql = $wpdb -> get_col("query");

例如:

$var = $wpdb -> get_col("SELECT `age` FROM `user`);

返回的结果以数值索引数组形式输出,一般通过foreach函数分离,或是直接使用$var[1]这样的方式获取。

注:其实get_col并不是仅仅只能用于就返回一列的sql语句,而是他默认只返回第一列的集合。如果希望他返回其他列,可以使用get_col("query", x)来实现。

五、获取多列数据,在一般sql语句就只返回特定属性时使用。

$sql = $wpdb -> get_results("query", output_type);

例如:

$vars = $wpdb -> get_results("SELECT * FROM `user`, ARRAY_A);

返回的结果以数值索引数组形式包其他形式输出,一般通过foreach函数分离,或是直接使用$var[1]这样的方式获取。获取的对象受第二个参数控制

output_type:三个预定义的常量之一。默认值为OBJECT。

OBJECT —— 返回的结果以对象形式输出

ARRAY_A ——返回的结果以关联数组形式输出

ARRAY_N —— 返回的结果以数值索引数组形式输出

我通常使用OBJECT或是ARRAY_A,访问方式分别为$var -> username(output_type为OBJECT时)或是$var["username"](output_type为ARRAY_A时)

例如

foreach($vars as $var) {

echo $var["username"];//output_type是ARRAY_A时

}

五、插入新数据

$id = $wpdb -> insert("table_name", array(), array(%s, %d));

例如:

$id = $wpdb -> insert("table_name", array("username" => $username,"password" => $password, "age" => $age), array("%s", "%s", "%d"));

第一个参数是将要写入的数据以数组形式插入。第二个参数是申明插入的数据类型,同时也有一定的反sql注入式攻击的效果。返回值为新建的那条数据的主键。

六、更新新数据

$id = $wpdb -> update("table_name", array(), array(),array(%s, %d), array(%s, %d));

例如:

$id = $wpdb -> update("table_name", array("username" => $username, "password" => $password, "age" => $age), array("ID" => $ID), array("%s", "%s", "%d"), array("%d"));

第一个参数是将要写入的数据以数组形式插入。第二个参数是过滤条件,也就是sql语句中where后的参数。第三个参数是要更新数据的数据类型,第四个参数是过滤条件的数据类型。返回值为更新的那条数据的主键。

七、删除数据

$id = $wpdb -> delete("table_name", array(), array(%s, %d));

例如:

$id = $wpdb -> update("table_name", array("ID" => $ID), array("%d"));

第一个参数是过滤条件,也就是sql语句中where后的参数。第二个参数是过滤条件的数据类型。返回值为删除的数目。

通过上述函数直接对数据库操作,可以大大提高系统的运行速度,让wordpress也适合开发大型系统。

作者:Winnie_zhou

链接:https://www.jianshu.com/p/41dda0c835c8

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

- THE END -

helei

6月21日17:59

最后修改:2020年6月21日
0

非特殊说明,本博所有文章均为博主原创。