使用参数在mysqli中执行

时间:2018-03-09 17:19:05

标签: php mysql mysqli pdo

我正在尝试将这些PDO样式语句转换为mysqli,并且我已经完成了很多其他代码,但我仍然坚持这一点。

它在PDO脚本中工作,但我不确定如何更改这些。

我知道我可以使用mysqli_query来执行,但因为我在这些($ values和$ values2)中使用绑定参数,所以我不确定这样做的正确方法。我意识到我可以删除我的准备语句但是如何使用$ values和$ values2参数执行查询?

我只是想尝试在这个和PDO之间进行速度比较,所以我不需要讨论哪个更好或为什么我不应该将这些转换为mysqli,我只是不知道如何去吧?

$insert = $MysqlConn->prepare($insertPlacement);

$insert = $MysqlConn->prepare($insertPlacement);

$update = $MysqlConn->prepare($updatePlacement);


        //Array will contain records that are expired
        $checkExisting = $MysqlConn->prepare($expiredCheck);
        $existingRslt = $checkExisting->execute($values2);
        $count3 = mysqli_fetch_assoc($checkExisting);

        //Array will contain records that are valid
        $checkExistingValid = $MysqlConn->prepare($validCheck);
        $existingVldRslt = $checkExistingValid->execute($values2);
        $count4 = mysqli_fetch_assoc($checkExistingValid);


        // IF records do not exist, or records exist and today is after expiration date
        if(empty($count3) && empty($count4)){
            print_r("Inserting");
            for($i=0; $i<$row2["QUANTITY"]; $i++) {  

                    $insertRslt = $insert->execute($values);



            }
        }elseif(!empty($count3)){
            print_r("Inserting");
            for($i=0; $i<$row2['QUANTITY']; $i++){

                    $insertRslt = $insert->execute($values);


            }
        }elseif(!empty($count4)){
            print_r("updatin");
            for($i=0; $i<$row2['QUANTITY']; $i++){

                    $updateRslt = $update->execute($values);

1 个答案:

答案 0 :(得分:2)

首先,mysqli和PDO之间没有明显的速度差异。 MySQL服务器执行查询所花费的时间比一个客户端API与另一个客户端API之间的任何细微差别重要得多。客户端API的选择不会影响服务器上的执行时间。

Mysqli不接受mysqli_stmt :: execute()方法的参数。您必须使用mysqli_stmt :: bind_param()逐个绑定变量。这不如使用PDO那么方便,所以我更喜欢使用PDO。

$checkExisting = $MysqlConn->prepare($expiredCheck);
$checkExisting->bind_param('s', $value2);
$existingRslt = $checkExisting->execute();
$result = $existingRslt->get_result();
$count3 = $result->fetch_assoc();