目前正在接触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/

10-11 22:34
查看更多