目前正在接触MYSQL和PHP,但仍然很入门。谁能指出我在这里做错了什么:
UPDATE mage_catalog_product_entity_text
SET value=" . $row['value2'] . "
WHERE value = " . $row['value'];
我试图将值设置为另一个值等于其当前值的变量。因此,value2是我要更新的内容,而值只是“测试”
我得到的错误是:
Unknown column 'test' in 'where clause'
编辑:回显此整个查询将返回相同的错误,所以我决定将我的整个代码张贴在根本没有提到“测试”的地方:
<?php // instead of <?
mysql_connect ("localhost","cpsdev_mage1","D******");
mysql_select_db ("cpsdev_mage1");
$sql = "select value from mage_catalog_product_entity_text WHERE Attribute_id = 64";
$result = mysql_query ($sql) or die($myQuery."<br/><br/>".mysql_error());
while($row = mysql_fetch_array($result,MYSQL_ASSOC))
{
$lines = file('/media/dev/' . $row['value']);
echo "UPDATE mage_catalog_product_entity_text SET value=" . $lines . "WHERE value = '" . $row['value']; . "'";
}
?>
我的数据库中的行是:
Attribute_id值
64个数据
109一些其他数据
编辑:已解决-是我的错误是ftping到建议编辑内容的错误位置
最佳答案
在SQL中,字符串值用单引号字符分隔。
要在SQL中实现这种效果:
UPDATE mage_catalog_product_entity_text
SET value= 'new'
WHERE value = 'old'
...以及在PHP中:
$sql = "UPDATE mage_catalog_product_entity_text " .
" SET value= '" . $row['value2'] .
"' WHERE value = '" . $row['value'] . "'";
注意每个子句中添加了两个额外的单引号。
关于php - 更新值等于的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13139099/