Ошибка PHP и MYSQLI, вызов функции-функции члена () для не-объекта

Когда я пытаюсь вызвать свою функцию, я получаю вызов функции-функции-члена () для объекта без объекта.

Мой код выглядит так:

function add_profile() { $hostname = "localhost"; $dbusername = "username"; $dbname = "dbname"; $dbpassword = "password"; $link = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname); if (!$link) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } $sql = "INSERT INTO payment_profiles(id, client_id) VALUES ( '','$profile_id')"; $result = $mysqli->query($sql); if (!result) { echo 'Error: ', $mysqli->error; } } add_profile(); 

Он говорит, что моя ошибка находится в строке: $result = $mysqli->query($sql);

Я предполагаю, что я не называю что-то должным образом. Заранее благодарю за любую помощь

В коде вы смешиваете как процедурный, так и объектно-ориентированный код. Выберите один или другой. Вот как вы могли бы решить проблему процедурным способом.

 $result = mysqli_query($link, $sql, MYSQLI_USE_RESULT) 

Когда я пытаюсь вызвать свою функцию, я получаю вызов функции-функции-члена () для объекта без объекта.

Это потому, что объект $mysqli не объявлен нигде (или он)? Прежде чем вы сможете использовать $mysqli вы должны сначала создать экземпляр mysqli и назначить его вашему объекту.

 $mysqli = new mysqli("localhost", "my_user", "my_password", "database"); 

Только тогда вы можете вызвать методы класса mysqli, такие как $mysqli->query();

Ошибка, которую вы сделали, зависит, вероятно, от двух неправильных представлений:

1) вы вставили половину своего кода из процедурной части руководства mysqli и половину от oop part

2) вы принимаете $mysqli – это глобальный объект, $mysqli_connect(); с помощью $mysqli_connect(); , Это не. Вы должны вызвать конструктор с new ключевым словом, если вы хотите использовать его в качестве объекта.

  $link = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname); ///// $result = $mysqli->query($sql); ///////