当我试图调用我的函数时,我正在非对象上获得对成员函数query()的调用。
我的代码如下:
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部分粘贴了一半
2) 假设CCD_ 6是用CCD_ 7实例化的全局对象。事实并非如此。如果您想将构造函数用作对象,则应该使用new
关键字来调用它。
$link = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname);
/////
$result = $mysqli->query($sql);
///////