作为从Windows服务器迁移到Linux服务器的一部分,我必须清理大量的文件名。
我的问题是当我执行时:
db_query("UPDATE {files} SET filename = '%s' AND filepath = '%s' WHERE fid = %d", $file->filename, $file->filepath, $file->fid);
然后选择$ file->的内容; fid文件名字段的值为“0”
如果我在执行它之前和之后将查询转储为文本,则filename字段包含我指定的文件名,其中正确存储了文件路径。
答案 0 :(得分:1)
该死!将AND放入更新查询将不会产生预期的结果...... MySQL允许这样做,但它不是要走的路:)
答案 1 :(得分:1)
使用逗号代替AND。
可能还想研究使用drupal_write_record()而不是db_query。如果为要检查的键添加第3个参数,drupal_write_record将自动更新预先存在的行。在您的情况下,您可以使用文件ID。