mysqli, циклы и подготовленные операторы - PullRequest
0 голосов
/ 15 февраля 2010

Хорошо, я не использую php достаточно часто, чтобы помнить его, когда возвращаюсь назад. Я схожу с ума немного с этим. Я выложу код ниже, но несколько быстрых объяснений. con.php - это php-файл, который создает соединение с базой данных $ wkHook. Нет проблем с подключением, так что это не моя проблема. По сути, я выбираю данные из одной таблицы, сохраняю их, а затем перебираю. В этом цикле я пытаюсь вставить данные в другую таблицу. Вы заметите, что я повторяю $ mid в цикле, чтобы сообщить мне, что сам цикл работает. И это работает. Когда я повторяю каждое значение для $ mid, отражается. Однако запрос внутри цикла ничего не делает. У него даже нет приличия, чтобы выбросить ошибку. Он просто проходит через цикл, как будто запроса не было.

require('con.php');
$runonce=$wkHook->prepare("select moveId, Max, Hev, Work, Split, Rps from Movement order by movementId asc");
          $runonce->execute();
          $runonce->store_result();
          $runonce->bind_result($mid, $max, $hev, $wrk, $spt, $rps);
$user=1;

while($runonce->fetch())
{
    echo $mid."<br>";
    $runup=$wkHook->prepare("insert into Entry
(userId, movementId, Max, Hev, Work, Split, Rps)
values
(?, ?, ?, ?, ?, ?, ?)");
    $runup->bind_param('iisssss', $user, $mid, $max, $hev, $wrk, $spt, $rps);
    $runup->execute();
}
$runup->close();
$runonce->close();
$wkHook->close();

1 Ответ

0 голосов
/ 15 февраля 2010

Вы, кажется, инициализируете свое соединение с базой данных снова и снова.Попробуйте удалить вторую, внутреннюю require('con.php').

. Ошибки MySQL по умолчанию не будут отображаться в браузере, вам нужно вызвать функции mysql_error () или mysqli_error , чтобыпосмотрим, что пошло не так, если что-нибудь.Добавьте это после вашего вызова execute в вашем цикле, чтобы увидеть, появляются ли сообщения об ошибках:

echo mysqli_error() . '<br />';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...