在插入行之前,我想检查它是否存在,以避免重复。
所以,我
$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
之后我是否必须再次绑定它们?
答案 0 :(得分:1)
事实上,如果您自己只尝试过,您会发现无法在语句中更改查询。因此,即使对查询进行“轻微修改”,您的假设也会失败,甚至不会进入“重新绑定”值的阶段。也没有“第二次准备”。通过调用prepare,您将创建一个对其他语言一无所知的全新语句(PHP中任何其他变量的行为都很常见)。