小编jos*_*hlf的帖子

Go中的Postgres SELECT将所有列作为字符串返回(使用pq和database/sql)

我正在使用数据库/ sql包和pq Postgres驱动程序在Go中进行选择:

rows, err := db.Query("SELECT (name, age) FROM people WHERE id = 1")
Run Code Online (Sandbox Code Playgroud)

我尝试以正常方式检索值:

rows.Next()
name := ""
age := 0
err = rows.Scan(&name, &age)
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误:

sql: expected 1 destination arguments in Scan, not 2
Run Code Online (Sandbox Code Playgroud)

对于文档的SQL.(*行).Scan说,你可以传递一个字节切片指针,它会充满了原始结果.所以我这样做了:

b := make([]byte, 1024*1024)
rows.Scan(&b)
fmt.Println(string(b))
Run Code Online (Sandbox Code Playgroud)

哪个成功,打印:

(John,18)
Run Code Online (Sandbox Code Playgroud)

所以我查看了sql.(*Rows).Scan的源代码,结果发现,如果参数的数量与数据库驱动程序返回的结果数不匹配,则返回错误(这是有意义的).因此,由于某种原因,pq驱动程序似乎将结果集作为单个值返回.为什么会这样?

postgresql select rows go

5
推荐指数
1
解决办法
2710
查看次数

Windows 相当于 VISUAL 或 EDITOR 环境变量

在 Unix 系统上,要求用户编辑一些足够复杂的文本的正常模式是打开 或VISUAL环境EDITOR变量中指定的编辑器,并将该编辑器指向一个用您希望用户编辑的内容初始化的临时文件。Windows 上是否有与此模式等效的东西?如果有,它是如何工作的?

windows terminal editor

5
推荐指数
1
解决办法
1210
查看次数

针对特定操作系统或架构的测试文件

在 Go 中,文件名具有语义含义。例如:

*_windows.go // Only include in compilations for Windows
*_unix.go    // Only include in compilations for Unix
*_386.go     // Only include in compilations for 386 systems
*_test.go    // Only include when run with `go test`
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法让以下内容发挥作用:

*_windows_test.go // Only include when running `go test` on windows
*_test_windows.go // Another attempt
Run Code Online (Sandbox Code Playgroud)

这对于 Go 来说可能吗?如果是这样,怎么办?

testing go

5
推荐指数
1
解决办法
3725
查看次数

检测 PHP mysqli 中的空列值

我有一个使用 mysqli 查询数据库的 php 项目。该数据库中的某些列可以为空。我的代码看起来像这样:

$query = "...";
$result = $DB->query($query);
$row = $result->fetch_assoc();
$column = $row['mycolumn'];
Run Code Online (Sandbox Code Playgroud)

如果mycolumn为 null,则 的值$column看起来是字符串"NULL"(不是空值,而是包含单词“NULL”的字符串)。"NULL"那么,如果我的列中实际上包含字符串,会发生什么情况?我怎样才能区分?

谢谢!乔什

编辑:经过仔细检查,该字符串实际上是一个 5 个字符的字符串。前 4 个字符是"NULL",但最后一个字符是 0x0d,即回车符。这使得它更容易检测,尽管我仍然很好奇是否有比仅仅进行字符串比较更简单的方法。

php mysql mysqli

4
推荐指数
1
解决办法
1万
查看次数

Android HttpUrlConnection执行POST而不是GET

我有一个Android应用程序尝试使用HttpUrlConnection对我的服务器执行GET请求.当我在单独的测试桌面应用程序中测试代码时,一切正常.但是,当我在我的Android设备上运行它时,我的服务器会注册一个POST请求而不是GET.

这是我的get方法的代码:

public static String get(String url) throws IOException {
    HttpURLConnection conn = connFromUrlString(url);
    conn.setRequestMethod("GET");
    conn.setDoInput(true);
    conn.setDoOutput(true);
    conn.connect();

    String out = IOUtils.toString(conn.getInputStream(), "UTF-8");
    conn.disconnect();
    return out;
}
Run Code Online (Sandbox Code Playgroud)

post android get http httpurlconnection

4
推荐指数
1
解决办法
1879
查看次数

Go:检查值的类型是否有效

我如何检查golang中的某些变量是否有类型func,如下所示:

func A() {}

func main() {
    variable := A
    isFunc := IsFunc(variable) // true or false
}
Run Code Online (Sandbox Code Playgroud)

reflection casting go

4
推荐指数
1
解决办法
1548
查看次数

仅在阻止拉取请求时手动运行 GitHub Actions

我有一组 GitHub 操作,配置为阻止合并拉取请求,直到操作成功完成。但是,每次将新提交推送到 PR 时,操作都会再次运行,如果作者尚未准备好合并并打算进行未来更改,这可能会非常浪费。有没有办法让 GitHub Action 仍然阻止 PR 合并,但也不自动运行 Action?

continuous-integration github github-actions

4
推荐指数
1
解决办法
1355
查看次数

如果有警告,则使“cargo doc”失败

我想在 CI 中进行测试,测试cargo doc成功且没有任何警告。如果出现警告,有什么方法可以cargo doc以非零退出代码退出吗?

testing documentation exit-code rust rust-cargo

4
推荐指数
1
解决办法
886
查看次数

Lucene完全匹配查询

我想构建一个Lucene查询,该查询仅匹配具有我指定的术语的文档:不少,不多." 不少 "部分很简单:带有所有强制性术语的BooleanQuery.但是,我不确定如何做"不再"的部分.本质上我需要的是一个查询,其中说"结果文档不能包含我在查询中指定的任何术语." 有任何想法吗?谢谢!

lucene match

3
推荐指数
1
解决办法
4096
查看次数

打印Go类型,忽略"String()string"方法

如果我有一个这样的类型:

type myType ...

func (m myType) String() string { ... }
Run Code Online (Sandbox Code Playgroud)

如何fmt使用默认表示(即,而不是String()调用)打印(使用各种函数)此类型?我想做的是这样的事情:

func (m myType) String() string {
    // some arbitrary property
    if myType.isValid() {
        // format properly
    } else {
        // will recurse infinitely; would like default
        // representation instead
        return fmt.Sprintf("invalid myType: %v", m)
    }
}
Run Code Online (Sandbox Code Playgroud)

formatting printf interface go

3
推荐指数
2
解决办法
966
查看次数