如何将名为占位符的PDO与字符串的其余部分分开

时间:2011-06-11 17:23:18

标签: php sql pdo

我有一个PDO准备好的声明,如下所示:

$STH = $DBH->("CREATE TABLE :prefixbase (table_structure)");

:前缀应替换为userprefix_。生成的SQL应如下所示:CREATE TABLE userprefix_base(table structure)。如何将占位符与字符串的其余部分分开?

2 个答案:

答案 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)");

除非在准备好声明后该前缀应该改变。如果不准备另一份声明,那就行不通了。