繁体   English   中英

MySQL到iOS的PDO JSON

[英]mysql to pdo JSON for ios

我正在尝试将此mysql代码转换为PDO代码,但我只能以JSON返回我的一行,而mysql代码允许我所有行。

$connection = mysql_connect($host, $user, $pass);

//Check to see if we can connect to the server
if(!$connection)
{
    die("Database server connection failed.");  
}
else
{
    //Attempt to select the database
    $dbconnect = mysql_select_db($db, $connection);

    //Check to see if we could select the database
    if(!$dbconnect)
    {
        die("Unable to connect to the specified database!");
    }
    else
    {
        $query = "SELECT * FROM questions ORDER BY RAND() LIMIT 40";
        $resultset = mysql_query($query, $connection);

        $records = array();

        //Loop through all our records and add them to our array
        while($r = mysql_fetch_assoc($resultset))
        {
            $records[] = $r;        
        }

        //Output the data as JSON
        echo json_encode($records);
    }


}

这是到目前为止我需要的PDO代码

$db = new PDO('mysql:host=***;dbname=***', $user, $pass);

$query = "SELECT * FROM questions ORDER BY RAND() LIMIT 40";
$stmt = $db->prepare($query);
$stmt->execute();

$records = array();

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $records = $row;
}

echo json_encode($records);

看来我必须用随机的gobldygook来填充更多内容,因为我似乎还没讲到重点。

忘记将每一行都推入记录,因此

$records[] = $row; 

或使用fetchAll()

$db = new PDO('mysql:host=***;dbname=***', $user, $pass);

$query = "SELECT * FROM questions ORDER BY RAND() LIMIT 40";
$stmt = $db->prepare($query);
$stmt->execute();

$records = $stmt->fetchAll(PDO::FETCH_ASSOC); // to get all records at once

echo json_encode($records);

暂无
暂无

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

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