繁体   English   中英

如何执行mysqli多重查询

[英]how to perform a mysqli multi query

我似乎无法弄清楚我的mysqli多查询出了什么问题。 当我运行它时,在php端没有任何错误,但是在Xcode中却出现了致命错误,并且崩溃了。 这是我在php端用来执行mysqli多查询的代码:

$sql2 = "SELECT * FROM database.database WHERE SenderID='" . $userUsername . "'; ";
$sql2 .= "SELECT * FROM database.database WHERE Username='" . $userUsername . "'; ";
$sql2 .= "SELECT * FROM database.database WHERE SenderID='" . $userUsername . "'; ";

// Execute multi query
if (mysqli_multi_query($conn,$sql2))
{
do
    {
    // Store first result set
    if ($result2=mysqli_store_result($conn)) {
    // Fetch one and one row
    while ($row=mysqli_fetch_row($result2))
        {
        $activity[] = $row;
        }
    // Free result set
    mysqli_free_result($result2);
    }
    }
while (mysqli_next_result($conn));
}

就像我之前说过的,我没有从此脚本收到任何错误消息,但是在Xcode中,我在此代码中收到错误:

func retrieveActivity(latestMessage:String) {

    self.caseLoadBool = false

    let request = NSMutableURLRequest(URL: NSURL(string: "http://website/info.php")!)
    request.HTTPMethod = "POST"
    let postString = "string=\(self.userUsername)"
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil {
            print("error=\(error)", terminator: "")
            return
        }


        // Convert the json data into an array
        /* ERROR ON THIS LINE */ let dataArray:[AnyObject] = (try! NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers)) as! [AnyObject]

我不确定我在做错什么相同的Xcode代码在处理其他单个mysqli查询时对我有用,我不确定这是一个mysqi多查询的事实是否与此有关。 任何帮助或建议将是超级骗子赞赏! 谢谢!

更新:错误代码:致命错误:'尝试! 表达式意外引发错误:Error Domain = NSCocoaErrorDomain代码= 3840“无值”。 UserInfo = {NSDebugDescription =无值。}:文件/Library/Caches/com.apple.xbs/Sources/swiftlang_PONDEROSA/swiftlang_PONDEROSA-700.1.101.6/src/swift/stdlib/public/core/ErrorType.swift,第50行

弄清楚了! 我通过不将json编码的数据发送回Xcode犯了一个愚蠢的简单错误。 我只需要添加:

echo json_encode($activity);

在多查询过程结束时

// Execute multi query
if (mysqli_multi_query($conn,$sql2))
{
do
    {
    // Store first result set
    if ($result2=mysqli_store_result($conn)) {
    // Fetch one and one row
    while ($row=mysqli_fetch_row($result2))
        {
        $activity[] = $row;
        }
    // Free result set
    mysqli_free_result($result2);
    }
    }
while (mysqli_next_result($conn));


}

echo json_encode($activity);

愚蠢的错误,但生病了,以防万一有人发现它有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM