当我重用(略微修改)查询时,是否必须重新绑定我的PDO参数?

时间:2015-09-07 08:32:39

标签: php pdo

在插入行之前,我想检查它是否存在,以避免重复。

所以,我

$pdo = ConenctToDatabase();

// Check for existence - don't add a duplicate
$sqlQuery = $pdo->prepare('SELECT campaign_id FROM campaigns WHERE (customer_id=:$customerId) AND (title=:campaignTitle) AND (description=:campaignDescription) AND (start_time=:startTimeStamp) AND (end_time=:endTimeStamp)');

$sqlQuery->bindParam(':customerId', $customerId, PDO::PARAM_INT);
$sqlQuery->bindParam(':campaignTitle', $campaignTitle);
$sqlQuery->bindParam(':campaignDescription', $campaignDescription);
$sqlQuery->bindParam(':startTimeStamp', $campaignTitle);
$sqlQuery->bindParam(':endTimeStamp', $endTimeStamp);

如果它还不存在,我想重用PDO语句,将SELECT更改为INSERT。

INSERT采用相同的参数。在第二个prepare之后我是否必须再次绑定它们?

1 个答案:

答案 0 :(得分:1)

事实上,如果您自己只尝试过,您会发现无法在语句中更改查询。因此,即使对查询进行“轻微修改”,您的假设也会失败,甚至不会进入“重新绑定”值的阶段。也没有“第二次准备”。通过调用prepare,您将创建一个对其他语言一无所知的全新语句(PHP中任何其他变量的行为都很常见)。