MySQL案例更新不适用于PHP,但在MySQL中工作

时间:2014-07-16 10:18:33

标签: php mysql sql

我有以下查询:

UPDATE languages
               SET val = CASE id
                                  WHEN '1' THEN '$PageIsLoading'
                                  WHEN '2' THEN '$start'
                                  WHEN '3' THEN '$DM'
                                  WHEN '4' THEN '$experience'
                                  ...
                                  WHEN '25' THEN '$mate'
                                  WHEN '26' THEN '$gloss'
                                  WHEN '27' THEN '$uvLaquer'
                                  WHEN '28' THEN '$without'
                                  WHEN '29' THEN '$oneFace'
                                  WHEN '30' THEN '$twoFace'
                                  WHEN '31' THEN '$Quantity'
                                  WHEN '32' THEN '$BeginProject'
                                  WHEN '33' THEN '$ImportantNote'
                                  WHEN '34' THEN '$FinalPrice'
                                  WHEN '35' THEN '$coords' 
                                  ELSE val
                                  END
             WHERE `id` IN ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35');

如果我单独通过MySQL(例如使用HeidiSQL执行它),它将使用新值更新单元格。 当我通过PHP传递它时,它根本不会做任何事情。 脚本中的变量是指定的,如果我回显它们,它们就会显示出来。此外,使用htmlentities()将它们从任何有问题的字符中删除。 在PHP脚本中,我使用以下内容:

$sql=mysqli_query($con, "THEQUERY");

即使我把像"QUERY STUFF ".$var." QUERY STUFF "这样的变量放在一起也不会改变任何东西...... 完全出于想法,因为我在项目中不同时间使用相同类型的查询并始终有效!

1 个答案:

答案 0 :(得分:-1)

尝试使用

$sql=mysqli_query($con, 'THEQUERY');

即将双引号替换为单引号(“to”)。因为如果使用“php将尝试解析和替换变量(以$开头)。