2016-09-25 3 views
1

Приветствую, мне нужно обновить некоторые строки таблицы в моей базе данных, но я ничего не получаю в своей php-функции и не обновляю, пожалуйста, помогите мне исправить это.Как обновить таблицу Mysqli с помощью OOPHP

мой стол называется USER_ACCOUNT и имеет следующие столбцы, идентификатор user_id, который FK другой таблицы, счета, адрес

Этот класс поддержки всех функций. Dbhandler.php

public function create_account($user_id, $account, $address) { 


    $stmt = $this->conn->prepare("UPDATE user_account set account= ?, address= ? where user_id = ? "); 

     $stmt->bind_param("iss", $user_id, $account, $address); 

     $stmt->execute(); 

    } 



**This file calls create_account function when i submit** 

<?php 

include './DbHandler.php'; 
$db = new DbHandler(); 


$response = array(); 

if ( isset($_POST['user_id']) && (isset($_POST['account']) &&  isset($_POST['address']) )!= '') { 


    $user_id = $_POST['user_id']; 
    $account = $_POST['account']; 
    $address = $_POST['address']; 



    $res = $db->createProfile($user_id, $account, $address); 

} 

?> 
+0

Я считаю, что это должно быть $ db-> createAccount вместо $ db-> createProfile. У вас есть две переменные для ответа: $ response и $ res, попробуйте использовать только –

+0

Да, я изменил $ db-> createProfile на $ db-> createAccount и $ res to $ response, но все равно никаких изменений –

+0

Не могли бы вы показать нам какие-либо ошибка вывода пожалуйста? –

ответ

0

Вы являетесь агентом sql, который обновляется, но вы должны использовать вставку. Я предполагаю, что строка еще не существует в таблице, так как функция называется createProfile/create_account?

Insert into user_account values() 
+0

Нет, моя строка существует, потому что мне нужно ее обновить, user_id - 7, в учетной записи 23435, в адресе есть kigali –

+0

Наконец-то я нашел, почему, я удалил везде, где у меня есть user_id id Dbhandler.php и в файле, который вызывает create_account, пример в этой строке: $ stmt = $ this-> conn-> prepare ("UPDATE user_account set account =?, address =? where user_id =?"); Надеюсь, это где user_id =? были причиной моей проблемы. теперь проблема в том, что обновление влияет на все строки, но мне нужно, чтобы это обновление влияло на последнюю вставленную строку. –

+0

Если вы это сделаете, вы обновите все записи в этой таблице. –

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