首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将SQL函数作为PDO准备语句运行并返回值

将SQL函数作为PDO准备语句运行并返回值
EN

Stack Overflow用户
提问于 2015-02-15 13:40:47
回答 1查看 130关注 0票数 0

我试图在数据库中存储用户的IP地址,基于此堆栈过流问题,我了解到IP地址应该以二进制格式存储。

以准备语句的形式运行函数-我可以将@ip绑定为$text参数

代码语言:javascript
复制
$stmt = $this->dbconnect->prepare ('CREATE FUNCTION dbo.fnBinaryIPv4(@:ip AS VARCHAR(15)) RETURNS BINARY(4)
        AS
        BEGIN
        DECLARE @bin AS BINARY(4)
        SELECT @bin = CAST( CAST( PARSENAME( @ip, 4 ) AS INTEGER) AS BINARY(1))
        + CAST( CAST( PARSENAME( @ip, 3 ) AS INTEGER) AS BINARY(1))
        + CAST( CAST( PARSENAME( @ip, 2 ) AS INTEGER) AS BINARY(1))
        + CAST( CAST( PARSENAME( @ip, 1 ) AS INTEGER) AS BINARY(1))
        RETURN @bin
 END;');


    $stmt->execute(array(':ip'=>$text));

如何使用返回的值(@bin)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-15 15:44:43

使用您的代码,您不是要执行存储的函数,而是要创建它。如果要执行先前创建的存储函数,只需选择它的返回值

例如:

代码语言:javascript
复制
$stmt = $this->dbconnect->prepare ('SELECT dbo.fnBinaryIPv4(:ip) as bin');
$stmt->execute(array(':ip'=>$text));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28526658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档