Когда я пытаюсь вызвать свою функцию, я получаю вызов функции-функции-члена () для объекта без объекта.
Мой код выглядит так:
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); ///////