我看这段代码已经有一段时间了,不知道问题出在哪里。
一般来说,我对编码是陌生的,但对CRUD
和SQL
尤其陌生。我想在这里创建一个准备好的语句,使用变量而不是精确值。我不明白的问题出在哪里
我有一个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> ,"*","*");