【问题标题】:How to resolve apostrophes before an SQL query - php如何在 SQL 查询之前解析撇号 - php
【发布时间】:2020-10-21 16:37:59
【问题描述】:

真的希望有人可以提供帮助。我从数据库中的一个表单中获取一个文本输入字段,它具有以下值“Pieter's School”,它在我的 sql 查询中给了我一个错误。

错误如下——WordPress数据库错误你的SQL语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在“学校”附近使用正确的语法,并且 e.user_id = 397 和 em.meta_value = 771089001000 ORDER BY em.cr...'

我推测它是因为它以“'”作为字符串的结尾。我不知道如何逃脱或让它发挥作用。

这是我的选择语句 -

$entry_ids = $wpdb->get_col("SELECT e.id FROM ".$wpdb-> prefix ."frm_items e LEFT JOIN ".$wpdb->prefix ."frm_item_metas em ON (em.item_id = e. id) WHERE e.form_id = 7 and e.name = '$schoolname' and e.user_id = $user_id and em.meta_value = $schoolhopperid ORDER BY em.created_at DESC");

【问题讨论】:

标签: mysql wordpress


【解决方案1】:

mysqli_real_escape_string():转义字符串中的撇号

文档:https://www.php.net/manual/de/mysqli.real-escape-string.php

【讨论】:

  • 这不是一个好主意,因为这样的代码可能仍然容易受到 SQL 注入的攻击
猜你喜欢
  • 1970-01-01
  • 2018-03-17
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
相关资源
最近更新 更多