我有一个PDO准备好的声明,如下所示:
$STH = $DBH->("CREATE TABLE :prefixbase (table_structure)");
:前缀应替换为userprefix_
。生成的SQL应如下所示:CREATE TABLE userprefix_base(table structure)
。如何将占位符与字符串的其余部分分开?
答案 0 :(得分:3)
我猜你需要在你的字符串上使用正则表达式或简单的find-replace,在这样的处理之后,PDO对象可以使用它作为正确的SQL命令。
以下是一个例子:
$subject = "CREATE TABLE :prefixbase(table_structure)";
$sql = preg_replace('/(:prefix)/', 'userprefix_', $subject);
// or
$sql = str_replace(':prefix', 'userprefix_', $subject);
P.S。我希望我能正确理解你的要求。
答案 1 :(得分:1)
这个怎么样:
$placeholder="userprefix_";
$stmt = $pdo->prepare("CREATE TABLE ".$placeholder."base (table_structure)");
除非在准备好声明后该前缀应该改变。如果不准备另一份声明,那就行不通了。