mysql
  • select
  • mysqli
  • 2013-03-12 51 views 0 likes 
    0

    在Codeigniter中使用Mysqli并将Mysql作为newb发送到Mysqli。mysqli select x AS y

    以下Mysql查询与Mysqli引发错误。我认为这可能与“SELECT x AS y”有关。

    $sql = "SELECT uk_postcode_lat AS lat, uk_postcode_long AS long FROM uk_postcodes where uk_postcode_code = '$zip' LIMIT 1"; 
    

    如何使库MySQLi此查询工作?

    +2

    您收到的错误是什么,您为什么怀疑问题出在列别名('AS')上? – 2013-03-12 23:33:58

    +0

    “错误代码:1064 - 您的SQL语法错误.....附近'long FROM uk_postcodes其中uk_postcode_code ='xyz'第1行'LIMIT 1'” – Ally 2013-03-12 23:38:11

    +0

    偏离主题:由于您使用的是mysqli,因此您可能要考虑使用预准备语句,而不是直接将PHP变量插入到SQL字符串中。 – Spudley 2013-03-12 23:47:46

    回答

    3

    long是保留关键字。

    试试这个

    $sql = "SELECT uk_postcode_lat AS lat, uk_postcode_long AS longitude FROM uk_postcodes where uk_postcode_code = '$zip' LIMIT 1"; 
    
    +0

    啊老保留关键字问题!我正在寻找更复杂的东西:)这是解决它,谢谢。 – Ally 2013-03-12 23:45:55

    +0

    不妨将它称为“纬度”,以便匹配冗长 – Bohemian 2013-03-12 23:46:44

    +0

    欢迎您! :) – 2013-03-12 23:48:54

    0

    我建议在反引号包裹你的字段名。这可以防止MySQL将它们视为SQL关键字 - long是关键字。

    $sql = "SELECT uk_postcode_lat AS `lat`, uk_postcode_long AS `long` FROM uk_postcodes where uk_postcode_code = '$zip' LIMIT 1"; 
    

    只需添加反引号,你就可以使用long作为一个字段名没有任何问题。

    +0

    谢谢你。这也是一个有用的答案! – Ally 2013-03-13 00:15:58

    相关问题