想知道如果有人能幫助 - 我敢肯定,這是以前的工作,但我不能讓一個MySQL更新工作變量嵌入到MySQL
$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
它顯然無法被識別爲當我變數放下硬編碼的值就可以了。
任何想法?
感謝
想知道如果有人能幫助 - 我敢肯定,這是以前的工作,但我不能讓一個MySQL更新工作變量嵌入到MySQL
$db->query("UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'");
它顯然無法被識別爲當我變數放下硬編碼的值就可以了。
任何想法?
感謝
您必須使用單引號'
或繞數組索引(如\"
)轉義雙引號。我用單引號替換雙引號
"UPDATE entry_pending_details SET old_value = '{$value['old_value']}' WHERE id = '{$value['id']}'"
試過了。數組var中的'''var不會「破壞」5.3.2上的字符串。 –
嗯,真的?沒有意識到這一點,現在無法測試......無論如何,OP不會不提他使用的是什麼版本,或許它是早期的版本,但它不支持它?但Dan的使用參數的答案是要走向IMO的方式 – ain
不知道它何時會發生變化。注意var名稱中的引號和空格,但是(雖然很奇怪)在5.3.2上工作。 –
你的問題可能是:
你有一個雙引號字符串中雙引號。這甚至不應該運行,這是一個語法錯誤。
變量名和括號之間的空格。
您可能容易受到SQL注入攻擊,並且肯定容易受到自己的邏輯錯誤的影響。
改爲使用綁定參數。
$st = $db->prepare("UPDATE entry_pending_details SET old_value = ? WHERE id = ?");
$st->execute(array($value['old_value'], $value['id']));
我認爲這也是空間,但在我的5.3.2上,{}'表示法符合空格。例如'echo {$ x ['a']}'和'echo {$ x ['a']}'都可以在$ x ['a'] ='yo''上正常工作,並給我'喲' (意外。 –
嘗試以下操作:
$sql = "UPDATE entry_pending_details SET old_value = '{$value ["old_value"]}' WHERE id = '{$value ["id"]}'";
mysql_query($sql) or die(mysql_error());
echo $sql;
它把查詢到一個變量以便以後可以檢查它是否需要是一個好主意。
以及var_dump($values)
顯示什麼?
我想要做的就是事先將值設置爲變量。例如
$old_value = $value['old_value'];
$id = $value['id'];
mysql_query("UPDATE entry_pending_details SET old_value = '$old_value' WHERE id = '$id'");
那麼在它壞了之前你有什麼改變? – ain