FATAL ERROR: Uncaught Error: Call to a member function execute() on boolean in
FATAL ERROR: Uncaught Error: Call to a member function execute() on boolean in
我知道有几个话题在讨论这个,但不幸的是我无法让它为我工作。我可能正在监督一些事情。
我得到以下代码:
function get_kurs($block){
open_connection();
global $conn;
$stmt = $conn->prepare("SELECT FachKürzel FROM `Fach` LEFT JOIN `Stunde` ON Fach.Fachname = Stunde.Fachname WHERE Stunde.Stunde = ?");
$stmt->bind_param("s", $block);
$stmt->execute();
$stmt->bind_result($kuerzel);
$stmt->fetch();
print $kuerzel;
$stmt->close();
$conn->close();
}
当我尝试执行它时,它给了我所描述的错误。我认为这可能与查询有关,但 运行 同一数据库上的 HeidiSQL 中完全相同的查询给了我想要的结果。
连接正常,因为我可以获得简单的查询以在我的网站上显示结果。
有什么想法吗?
提前致谢!
编辑:以防万一它很重要:
function open_connection(){
$servername = "XXX.XXX.XXX.XXX";
$username = "username";
$password = "password";
$dbname = "XXXX";
global $conn;
$conn = new MySQLi($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
}
prepare函数可以return语句对象或false。如果你得到一个错误,这意味着有一个错误。
尝试使用 $conn->errno
或 $conn->error
打印错误,以便更好地了解您的问题所在。
您可以将代码更改为如下内容:
function get_kurs($block){
open_connection();
global $conn;
if($stmt = $conn->prepare("SELECT FachKürzel FROM `Fach` LEFT JOIN `Stunde` ON Fach.Fachname = Stunde.Fachname WHERE Stunde.Stunde = ?")){
$stmt->bind_param("s", $block);
$stmt->execute();
$stmt->bind_result($kuerzel);
$stmt->fetch();
}else{
printf('errno: %d, error: %s', $conn->errno, $conn->error);
die;
}
print $kuerzel;
$stmt->close();
$conn->close();
}
我知道有几个话题在讨论这个,但不幸的是我无法让它为我工作。我可能正在监督一些事情。
我得到以下代码:
function get_kurs($block){
open_connection();
global $conn;
$stmt = $conn->prepare("SELECT FachKürzel FROM `Fach` LEFT JOIN `Stunde` ON Fach.Fachname = Stunde.Fachname WHERE Stunde.Stunde = ?");
$stmt->bind_param("s", $block);
$stmt->execute();
$stmt->bind_result($kuerzel);
$stmt->fetch();
print $kuerzel;
$stmt->close();
$conn->close();
}
当我尝试执行它时,它给了我所描述的错误。我认为这可能与查询有关,但 运行 同一数据库上的 HeidiSQL 中完全相同的查询给了我想要的结果。
连接正常,因为我可以获得简单的查询以在我的网站上显示结果。
有什么想法吗? 提前致谢!
编辑:以防万一它很重要:
function open_connection(){
$servername = "XXX.XXX.XXX.XXX";
$username = "username";
$password = "password";
$dbname = "XXXX";
global $conn;
$conn = new MySQLi($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
}
prepare函数可以return语句对象或false。如果你得到一个错误,这意味着有一个错误。
尝试使用 $conn->errno
或 $conn->error
打印错误,以便更好地了解您的问题所在。
您可以将代码更改为如下内容:
function get_kurs($block){
open_connection();
global $conn;
if($stmt = $conn->prepare("SELECT FachKürzel FROM `Fach` LEFT JOIN `Stunde` ON Fach.Fachname = Stunde.Fachname WHERE Stunde.Stunde = ?")){
$stmt->bind_param("s", $block);
$stmt->execute();
$stmt->bind_result($kuerzel);
$stmt->fetch();
}else{
printf('errno: %d, error: %s', $conn->errno, $conn->error);
die;
}
print $kuerzel;
$stmt->close();
$conn->close();
}