我正试图从如下PHP脚本运行MySQL查询:

$q = "
UPDATE
  cf_ab_companies, inndata200
SET
  cf_ab_companies.col_158 = inndata200.AFakt_10_Fast_renhold,
  cf_ab_companies.col_159 = IF ( inndata200.Startdato = "01.01.3000 00:00" OR inndata200.Startdato = "01.01.2000 00:00", NULL, str_to_date(inndata200.Startdato, '%d.%m.%Y')),
  cf_ab_companies.col_160 = IF ( inndata200.Sluttdato = "01.01.3000 00:00" OR inndata200.Sluttdato = "01.01.2000 00:00", NULL, str_to_date(inndata200.Sluttdato, '%d.%m.%Y'))
WHERE
  cf_ab_companies.model_id = inndata200.ImportGOID;";

 mysql_query($q, $db);

但是,该查询似乎没有正确地存储在PHP中。在PHP中存储这样的查询最简单的方法是什么?
谢谢你的帮助

最佳答案

这应该会起作用;在引号(\)之前加斜杠("),因为这样会混淆:

$q = "
UPDATE
  cf_ab_companies, inndata200
SET
  cf_ab_companies.col_158 = inndata200.AFakt_10_Fast_renhold,
  cf_ab_companies.col_159 = IF ( inndata200.Startdato = \"01.01.3000 00:00\" OR inndata200.Startdato = \"01.01.2000 00:00\", NULL, str_to_date(inndata200.Startdato, '%d.%m.%Y')),
  cf_ab_companies.col_160 = IF ( inndata200.Sluttdato = \"01.01.3000 00:00\" OR inndata200.Sluttdato = \"01.01.2000 00:00\", NULL, str_to_date(inndata200.Sluttdato, '%d.%m.%Y'))
WHERE
  cf_ab_companies.model_id = inndata200.ImportGOID;";

10-07 23:49