fetch_array с подготовленным заявлением? PHP MYSQL?

По какой-то причине я не могу заставить это работать на жизнь меня, я новичок в подготовленных заявлениях!

$q = $dbc -> prepare ("SELECT * FROM accounts WHERE email = ? && logcount = ''"); $q -> bind_param ('s', ($_SERVER['QUERY_STRING'])); $row = $q -> fetch_array(MYSQLI_ASSOC); $q -> execute(); $q -> store_result(); if ($q -> num_rows == 1) { $q = $dbc -> prepare("UPDATE accounts SET logcount = '0' WHERE email = ?"); $q -> bind_param('s', ($_SERVER['QUERY_STRING'])); $q -> execute(); echo ' 

Поздравления ' . $ row ['username']. «ваша учетная запись теперь активна!

«; }

Любые идеи, почему $ row ['username'] не будут печататься? Он возвращает a: вызов неопределенного метода mysqli_stmt :: fetch_array ()

Благодарю.

В этом случае вам не нужен fetch_array .

Если вы хотите использовать получение данных из запроса, вам нужно использовать bind_result и fetch после вызова execute .

Вам нужно вызвать $q -> execute(); до получения результата.

Кажется, вы неправильно это делаете, когда вы вызываете execute ut, возвращает объект result, который вы называете ваши методы выборки:

 $q = $dbc->prepare ("SELECT * FROM accounts WHERE email = ? && logcount = ''"); $q->bind_param ('s', ($_SERVER['QUERY_STRING'])); //Updated Here $result = $q -> execute(); if ($result->num_rows == 1) { $assocData = $result->fetch_array(MYSQLI_ASSOC); //Do other stuff }