我正在尝试显示数据库中的数据。该数据是通过类似bellow的esc\\u sql转义的。
但当我在echo
, 换行符打印为字符(“\\”、“r”、“\\”、“n”)。
$data = esc_sql("
sample data with line returns
");
echo $data; // Output = \\r\\n sample data with line returns\\r\\n
执行esc\\u sql后,重新应用行返回的最佳方法是什么?我正在尝试显示数据库中的数据。该数据是通过类似bellow的esc\\u sql转义的。
但当我在echo
, 换行符打印为字符(“\\”、“r”、“\\”、“n”)。
$data = esc_sql("
sample data with line returns
");
echo $data; // Output = \\r\\n sample data with line returns\\r\\n
执行esc\\u sql后,重新应用行返回的最佳方法是什么?那不是什么esc_sql
是用于或应该用于什么。
$wpdb->prepare
, e、 g。$table_name = "{$wpdb->prefix}myTable";
$myID = 12;
$wpdb->query(
$wpdb->prepare(
"UPDATE `$table_name` SET `your_column_1` = 1 WHERE `$table_name`.`your_column_id` = %d",
$myID
)
);
请注意$myID
使用安全地插入到SQL查询中$wpdb->prepare
, 并且不直接包含在查询字符串中。esc_sql
此处不使用。esc_html
对于非HTML文本esc_attr
对于HTML标记属性esc_url
对于URLwp_kses_post
对于贴子内容中允许使用标签的内容,我应该何时使用esc_sql
?非常、非常、很少:通常应该使用wpdb::prepare()准备查询。有时,需要或有用点转义。一个示例是准备在in子句中使用的数组。
和
正确使用此功能时要小心。它将仅转义要在查询中的字符串中使用的值。也就是说,它只为SQL中引号内的值提供转义(如字段=“{$escaped\\u value}”)。如果您的值不在引号内,那么您的代码仍然容易受到SQL注入的攻击。例如,这很容易受到攻击,因为在SQL查询中,转义值没有被引号括起来:ORDER by{$escape\\u value}。因此,此函数不会转义无引号的数值、字段名或SQL关键字。
https://developer.wordpress.org/reference/functions/esc_sql/
大多数WP开发人员永远不会使用或遇到esc_sql
这是一件好事。我希望这不是多余的-但似乎总是有足够多的不同,我无法让事情顺利进行。我正在我的functions.php 文件-所有其他功能工作正常。$query = $mydb->get_results("select * from table"); //这在mysql中运行得很好,我可以做count(*)之类的事情并将其报告回来。但无论出于什么原因,我都无法让表返回输出到wordpress页面的结果return "$query"; return "