PHP中的mysqli出现问题警告:mysqli_stmt_prepare()需要参数1



我看这段代码已经有一段时间了,不知道问题出在哪里。

一般来说,我对编码是陌生的,但对CRUDSQL尤其陌生。我想在这里创建一个准备好的语句,使用变量而不是精确值。我不明白的问题出在哪里

我有一个Databasetools.php

<?php
class DatabaseTools
{
//private $user = $_SESSION['userId']; // these get called when the object gets created
//private $userEmail = $_SESSION['emailUser'];
public function __construct($Name)
{
$servername = "localhost";
$dBUsername = "root";
$dBPassword = "supersecretpassword";
$dbPort = "3306";
$this->name = $Name;
$conn = mysqli_connect($servername, $dBUsername, $dBPassword, $this->name, $dbPort);
$stmt = mysqli_stmt_init($conn);
if(!$conn)
{
die("connection faild: ".mysqli_connect_error()); 
}
}
public function lookup($dBName, $Row, $Column)
{
//$sql = "SELECT ".$Column." FROM ".$dBName." WHERE ".$Row.";";
$sql = "SELECT ? FROM ? WHERE ?;";
if(!mysqli_stmt_prepare($stmt, $sql))
{
echo "False";
}
else 
{
mysqli_stmt_bind_param($stmt, "sss", $column, $dBName, $Row);
mysqli_stmt_execute($stmt);
$result = mysli_stmt_get_result($stmt);
echo $result;
}
// try to connect to the database
}
public function setCell($Database, $Row, $Column)
{
}
public function disconnect($dBName)
{
}
public function echotest()
{
}
}
?>

我正在使用一个页面来检查代码是否在中工作

<?php
require "Model/php/databaseTools.php";
$loginData = new databaseTools("loginsystem");
$loginData->lookup("loginsystem","*","*");
?>

非常感谢你能给我指明写作方向。

您确定在查找函数中有$stmt值吗?

尝试将其添加为参数之一,类似于以下内容:

public function lookup($dBName, $stmt, $Row, $Column)

然后也用$stmt参数调用它:

$loginData->lookup("loginsystem", <stmt> ,"*","*");

最新更新