Проблема с mysqli в PHP Предупреждение: mysqli_stmt_prepare () ожидает параметр 1 - PullRequest
0 голосов
/ 03 марта 2020

Я давно смотрю на этот код и не могу понять, в чем проблема.

Я новичок в кодировании в целом, но особенно плохо знаком с 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","*","*");
?>

Большое спасибо, если бы вы могли указать мне направление записи.

1 Ответ

0 голосов
/ 03 марта 2020

Вы уверены, что у вас есть значение $ stmt в функции поиска?

Попробуйте добавить его в качестве одного из параметров, например, так:

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

, а затем вызвать его также с параметром $stmt:

$loginData->lookup("loginsystem", <stmt> ,"*","*");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...