Php 如何:MySQLi到PDO
我有使用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
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;
}