Php 如何:MySQLi到PDO

Php 如何:MySQLi到PDO,php,mysqli,pdo,Php,Mysqli,Pdo,我有使用MySQLi访问数据库的代码,我想改为PDO语句,有人能帮忙吗?这是我的密码: function select_data($user_id, $start_date, $end_date) { global $connection; $sql = "SELECT * FROM attendancy WHERE user_id = $user_id AND date >= '$start_date' AND date

我有使用MySQLi访问数据库的代码,我想改为PDO语句,有人能帮忙吗?这是我的密码:

function select_data($user_id, $start_date, $end_date)
{
    global $connection;

    $sql = "SELECT * FROM attendancy
        WHERE user_id = $user_id
        AND date >= '$start_date'
        AND date <= '$end_date'";

    $result = $connection->query($sql);
    if(!is_object($result)) return array();

    $data = array();

    while($row = $result->fetch_assoc())
    {
        $row['duration'] = count_work_hours($row);
        $data[] = $row;
    }

    return $data;
}
函数选择数据($user\u id、$start\u date、$end\u date)
{
全球美元连接;
$sql=“从attendancy中选择*
其中user\u id=$user\u id
和日期>=“$start\u date”
和日期
函数选择数据($user\u id、$start\u date、$end\u date)
{
全球美元连接;
$sql=“从attendancy中选择*
其中user\u id=:user\u id
和日期>=:开始日期
和日期
函数选择数据($user\u id、$start\u date、$end\u date)
{
全球美元连接;
$sql=“从attendancy中选择*
其中user\u id=:user\u id
和日期>=:开始日期

如果您使用参数化格式,那么mysqli也很好,我有,但没有work@pranatayudha所以你做得不对。如果你不能在mysqli中使用它们,我敢肯定你在PHP中也会失败。因此,与其尝试直接将所有内容更改为PDO,为什么不向我们展示你的代码恩,你试着在mysqli中使用准备好的语句,我们帮助你找到错误?要将其更改为PDO,你可以简单地用谷歌搜索。我们是来帮助你的,而不是为你编写代码的。如果你已经能够在mysqli中编写此代码,你也可以使用PDO编写,无需要求我们。但正如我所说的,向我们展示你准备好的语句,我想分享我的PDO代码,但时间太长了。到目前为止,你已经尝试了什么?
mysqli
如果你使用参数化格式也很好,但我没有work@pranatayudha所以你做得不对。如果你不能在mysqli上使用它们,我敢肯定你在PHP上也会失败。因此,与其试图改变一切,不如o PDO直截了当,为什么您在尝试使用mysqli准备好的语句时不向我们展示您的代码,我们可以帮助您找到错误?要将其更改为PDO,您只需通过google即可。我们是来帮助您的,而不是为您编写代码的。如果您能够在mysqli中编写此代码,您也可以使用PDO来编写,无需要求我们这样做。但正如我所说的,向我们展示你准备好的语句,会对你有更多帮助:)我想分享我的PDO代码,但是太长了,汉克斯,问题解决了!@Eng CyNope,很乐意帮忙谢谢,问题解决了!@Eng CyNope,很乐意帮忙
function select_data($user_id, $start_date, $end_date)
{
    global $connection;

    $sql = "SELECT * FROM attendancy
        WHERE user_id = :user_id
        AND date >= :start_date
        AND date <= :end_date";

    $stmt = $connection->prepare($sql,[PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY]);

    $stmt->execute([":user_id" => $user_id, ":start_date" => $start_date, ":end_date" => $end_date]);

    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);        

    if(!count($results)){
        return array();
    }
    else{

        $data = array();

        foreach($results as $row){

            $row['duration'] = count_work_hours($row);
            $data[] = $row;
        }
    }

    return $data;
}