php: конвертировать pdo контент в mysqli - PullRequest
0 голосов
/ 04 февраля 2012

Я использую хороший кусок кода для переупорядочения содержимого БД, используя drag and drop .Я могу заставить его работать локально, включив расширение PDO в файле php.ini, но мой хостинг-пакет (общий) не позволяет использовать PDO и MySQLi одновременно.Я не знаком с PDO и буду признателен за любую помощь в переписывании следующего сегмента для работы с MySQLi, если это возможно.Спасибо.

<?php
if (isset($_POST['orders'])) {

} else {
    echo json_encode(array('error' => true));
}

$orders = explode('&', $_POST['orders']);

$array = array();

foreach($orders as $item) {
    $item = explode('=', $item);
    $item = explode('_', $item[1]);
    $array[] = $item[1];
}

try {

    $objDb = new PDO('mysql:host=localhost;dbname=test', 'user', 'pw');
    $objDb->exec("SET CHARACTER SET utf8");

    foreach($array as $key => $value) {
        $key = $key + 1;
        $sql = "UPDATE `artwork` 
               SET `listorder` = ?
               WHERE `id` = ?";
               echo $sql;

        $objDb->prepare($sql)->execute(array($key, $value));        
    }

    echo json_encode(array('error' => false));

} catch(Exception $e) {

    echo json_encode(array('error' => true));

}

1 Ответ

2 голосов
/ 04 февраля 2012

Моя рекомендация?Найдите другого хозяина.Переход от PDO к mysqli не очень хорошая идея, потому что вы будете тратить время на перенос кода в менее переносимое состояние.

- Правка -

Вы можете попробовать следующий фрагмент кода, еслиэто не работает, это должно помочь вам начать.Я не смог проверить это, потому что ни на одном из моих серверов не скомпилированы модули mysql *.

$dbo = new mysqli('localhost', 'user', 'password', 'database');

if (mysqli_connect_error()) {
    echo sprintf('Unable to connect: ErrNo: (%d), ErrMsg: (%s)', mysqli_connect_errno, mysqli_connect_error());
    exit;
}

foreach ($array as $key => $value) {

    $key = $key + 1;

    $sql =  "UPDATE `artwork` SET `listorder` = " . (int) $key . "  WHERE `id` = " . (int) $value;

    $dbo->query($sql);
}

$dbo->close();

Более подробную информацию о запросе mysqli и других функциях можно получить здесь .

* 1011.* В любом случае, удачи.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...