2016-02-16 3 views
-1

У меня есть следующий фрагмент кода. Он работает, когда выполняется в интерфейсе sql phpmyadmin, но когда я выполняю его на сервере, $stmt = $con->prepare($sql) всегда возвращает false, и я выхожу с ошибкой.Оператор MySQL работает в phpmyadmin, но не в коде

Отметьте, что $stmt = $con->prepare($sql) не возвращает сообщения об ошибках. Боюсь, что я тоже могу сделать что-то неправильно?

Я предполагаю, что у меня что-то важное отсутствует!

Также оператор Update работал правильно, прежде чем я его изменил, чтобы вернуть список обновленных идентификаторов, разделенных запятыми.

$sql = "SET @uids := null; 
        UPDATE userpicks, brackets 
        SET userpicks.player1 = ?, userpicks.pick = ? 
        WHERE userpicks.id_user = ? AND userpicks.id_tournament = ? AND brackets.stage > ? AND userpicks.player1 = ? 
        AND (SELECT @uids := CONCAT_WS(',', brackets.id, @uids)); 
        SELECT @uids;"; 

     if ($stmt = $con->prepare($sql)) { 
      $stmt->bind_param('iiiiii', $noPlayerID, $noPlayerID, $_SESSION ["id"], $id_tournament, $bracket_stage, $id_player); 
     } else { 
      echo mysqli_error($con); 
      return getJSONArrayError("Error occurred"); 
     } 
+0

Вы не выполнили свой запрос в своем коде. –

+1

получить реальную ошибку http://php.net/manual/en/mysqli.error.php, если она будет выполнена при ее выполнении. –

+0

Запрос выполняется только в том случае, если подготовка прошла успешно. Я повторяю «реальную» ошибку, но она пуста. – Markus

ответ

-2

Я думаю, что вы путаете процедурного и объектно-ориентированного подхода в PHP http://php.net/manual/en/mysqli.quickstart.dual-interface.php Попробуйте $ STMT = mysqli-> подготовить ($ CON, $ SQL) вместо ($ STMT = $ con-> подготовить ($ sql))

+0

Это неправильно. '$ stmt = mysqli-> prepare()' будет пытаться использовать метод 'prepare' в' mysqli', но поскольку mysqli не является объектом, он будет терпеть неудачу. По крайней мере, вы должны использовать '$ mysql-> prepare()'. Также нет ничего плохого в смешении процедурных вызовов и вызовов ООП, хотя это, как правило, делает ваш код более трудным для чтения. – andrewsi

Смежные вопросы