2012-11-30 91 views
0

令人难以置信的是,我有一个确切的脚本,其中有一个不同于“additional”的变量。但是,即使有一个额外的MySQL列,我无法得到它的更新。我甚至尝试改变其他东西,但它无法与此专栏一起工作。什么是冲突?Mysql更新命令失败

<?php 
echo "yup"; 
$lt2 = "yup"; 
$blah = "yup"; 
$username = "yup"; 
$lt1 = "yup"; 
$dbh = new PDO(censored); 
$sql = "UPDATE purchases SET additional = ? WHERE username = ? AND blah = ? AND kusername = ?"; 
$q = $dbh->prepare($sql); 
$params = array($lt1, $lt2, $username, $blah); 
$q->execute($params); 
$doc = new DOMDocument(); 
$r = $doc->createElement("location"); 
$doc->appendChild($r); 
foreach ($q->fetchAll() as $row) { 
    $e = $doc->createElement("location"); 
    $e->setAttribute('name', $row['additional']); 


    $r->appendChild($e); 

} 
print $doc->saveXML(); 

echo "work"; 
?> 

回答

0

尝试

$sql = "UPDATE purchases SET additional = ? WHERE username = ? AND blah = ? AND kusername = ?"; 
$q = $dbh->prepare($sql); 
$params = array($lt1,$lt2, $username, $blah); 
+0

感谢,但没有奏效 – user1803649

+0

比任何你没有连接到数据库或条件查询不匹配 –

+0

他们这样做。连接起作用。我对此100%肯定。第二个建议是我也想过的,所以我复制并粘贴了该名称,但仍然无效。 – user1803649

0

能否请你告诉我这个表中有 “自动递增” ID与否。

如果是,请传递您已更新记录的ID。

$sql = "UPDATE purchases SET additional = '$lt1' WHERE purchase_id = ?"; 

如果没有,请更改查询是这样的:

$sql = "UPDATE purchases SET additional = '$lt1' WHERE username = ? OR blah = ? OR kusername = ?"; 
+0

我没有使用自动增量。它没有工作,但谢谢。 – user1803649