一、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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://www.95app.top/wordpress%e6%93%8d%e4%bd%9c%e6%95%b0%e6%8d%ae%e5%ba%93/