我正在使用一个类来构建一个具有命名参数的MySQL查询以将数据绑定到它。示例查询可能是。现在使用占位符区分用户数据和查询中的参数名称
INSERT INTO table (title, text) VALUES (?title, ?text)
你可以指定值通过给参数名称和值使用这些占位符(?title
,?text
)。在这个过程中,这个值将会被转义(基本上mysql_real_escape_string
带有布尔值,数组等的特殊处理)。
问题是一个包含占位符本身的值,因为我依次替换它们。为了完成上面的例子,替换可以如下。
title -> "hey ?text"
text -> "lorem ipsum ..."
我的第一个想法是首先用唯一值替换占位符。这些必须是不能出现在转义字符串中的字符串。
这是一个好方法,以及为此目的存在哪些字符序列?
你是如何做字符串替换? – hafichuk
为什么你不使用PDO? – Paul
@hafichuk现在他们在foreach循环中调用简单的'str_ireplace'调用。参数保存在关联数组中,直到请求最终查询。 – Frank