当前位置: 首页 > 知识库问答 >
问题:

Datastax PHP Cassandra,出现“名称没有值或列”错误

韦绍晖
2023-03-14

Cassandra \ Exception \ InvalidArgumentException:name没有值或列

我正在尝试将一些旧代码从YACassandraPDO更新到Datastax的新PHP扩展,但遇到了一些问题。值得注意的是,这个错误。我不知道为什么,也不知道出了什么问题。

参数号匹配。tax为准备好的报表做了一些完全不同的数据吗?

$query  = "UPDATE {$this->keyspace}.visit  USING TTL {$this->ttl}
                SET ip=:ip, browser=:browser, referrer=:ref, terms=:terms
                 ,  url=:url, stime=:stime, etime=:etime
                 , company=:company, isp=:isp, domain=:domain, client_type = :client_type
                 , city=:city, state=:state_cd, postal_cd=:postal, country=:country
                 , country_cd=:country_cd, latitude=:lat, longitude=:long, area_cd=:area_cd
                 , user_id=:user_id
                WHERE visit_dt=:dt AND cid=:cid AND sid=:sid AND pvid=:pvid";

阵列为:

    $params = [
        ':dt'          => new Timestamp(strtotime(date('Y-m-d')), 0),
        ':cid'         => $data['customerId'],
        ':sid'         => $data['sid'],
        ':pvid'        => $data['pvid'],
        // Columns
        ':ip'          => $ip,
        ':browser'     => utf8_encode($data['browser']),
        ':client_type' => utf8_encode($device),
        ':ref'         => utf8_encode($data['referrer']),
        ':terms'       => utf8_encode($terms),
        ':url'         => utf8_encode($data['url']),
        ':stime'       => $data['now'],
        ':etime'       => $data['etime'],
        ':user_id'     => $data['userid'],
        // Geodecode information
        ':company'     => utf8_encode($geo->isp),
        ':domain'      => utf8_encode($geo->domainName),
        ':isp'         => utf8_encode($geo->isp),
        ':city'        => utf8_encode($geo->cityName),
        ':state_cd'    => utf8_encode($geo->regionName),
        ':country'     => utf8_encode($geo->countryName),
        ':country_cd'  => utf8_encode($geo->countryCode),
        ':postal'      => $geo->zipCode,
        ':lat'         => floatval($geo->latitude),
        ':long'        => floatval($geo->longitude),
        ':area_cd'     => $areac
    ];

执行:

        $prep = $this->adapter()->prepare($stmnt);
        $return = $this->adapter()->execute($prep, ['arguments' => $params]);

共有1个答案

史钊
2023-03-14

好吧,我发现了问题:科尔斯key”只需要是“key”。

伙计,这花了太长时间才看到。我所有的旧绑定名称都是$stmnt-

 类似资料:
  • 问题内容: 我开始使用TypeScript编写AngularJS应用。我有这个简单的模块命令: 当我跑步时,我得到了: 我是否需要包括一些内容以使他们理解? 问候, 问题答案: 您可以通过告诉编译器“您对角度的全部了解”来简单地告诉编译器不再担心: 为了获得所有好的工具和类型检查,您需要提取Angular类型定义,以便编译器知道可用的东西。 如果您对自己喜欢的IDE使用Visual Studio或

  • 问题内容: 这是我的代码: 有什么帮助吗? 问题答案: 如urllib2文档中所述: 该模块已在Python 3中分为几个名为和的模块。2to3在将源转换为Python 3时,该工具将自动调整导入。 所以你应该说 你当前正在编辑的代码示例不正确,因为你在说urllib.urlopen("http://www.google.com/”)而不是urlopen("http://www.google.co

  • 问题内容: 我正在尝试启动并运行我的第一个TypeScript和DefinitelyTyped Node.js应用程序,并且遇到一些错误。 尝试转换简单的TypeScript Node.js页面时,出现错误“ TS2304:找不到名称’require’”。我已经阅读了Stack Overflow上多次出现此错误的信息,但我认为我没有类似的问题。我在shell提示符下运行命令: 该文件的内容是: 错

  • 问题内容: 我正在用Swift语言和方法创建UITableViewController 我收到这个错误 NSIndexPath?在Swift中没有成员名称“行”错误 我不明白为什么。 这是我的代码 然后,如何使用数组dataStore元素设置cell.text? 问题答案: 您可以使用以下命令解开可选参数: 或者,如果确定不是,则可以使用以下命令强制展开: 请记住,在nil值上将是一个运行时异常,

  • 问题内容: 我知道 将列出表中的所有列,但我有兴趣按字母顺序列出这些列。 说,我有三列,“姓名”,“年龄”和“性别”。 我希望这些列以以下格式组织 是否可以使用SQL做到这一点? 问题答案: 是的,没有:-) SQL本身并不关心列的排列顺序,但是,如果要使用的话: 您会发现它们可能按此顺序出现(尽管我不确定SQL标准是否要求这样做)。 现在您可能 不想 这样做,但有时生活不公平:-) 您还可以使用