Я пытаюсь создать оператор вставки через PDO с переменными, но всегда получаю следующие ошибкиPDO оператор вставки с переменными
Fatal error: Uncaught Error: Call to a member function prepare() on null in /Applications/XAMPP/xamppfiles/htdocs/Jobber/user.php:9 Stack trace: #0 /Applications/XAMPP/xamppfiles/htdocs/jobber/usercheck.php(3): Users->__construct('steve', '[email protected]', 'test', 1) #1 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/Jobber/user.php on line 9
это код, я использую для него
class Users{
private $connect ;
function __construct($name,$email,$password,$usertype){
include("connect.php");
$startDb = new Connect();
$this->connect = $startDb->getDb();
$sqlquery = $this->connect->prepare("INSERT INTO `user`(`Username`, `Email`, `Active`, `Password`, `usertype`) VALUES (" + $name + "," +$email +",0," + $password + "," + $usertype + ")");
$sqlquery->execute();
}
}
Есть ли проблема с соединением или это что-то еще с переменными?
это класс подключения
class Connect{
private $host = "localhost:8080";
private $user = "root";
private $password = "test";
private $dbName = "jobber";
private $db;
function __construct(){
try{
$connection = new PDO('mysql:host=localhost;dbname=jobber',$this->user,$this->password);
}catch(PDOException $ex){
echo $ex;
}
}
function getDb(){
if($this->db instanceof PDO){
return $this->db;
}
}
}
Показать код класса 'Connect'. –
'$ startDb-> getDb()' возвращает значение null. Вы пробовали отладку? – trincot
Как и сообщение об ошибке, ваш код использует что-то ($ this-> connect, поскольку это единственное место, где вы вызываете prepare()) как объект класса, который, в свою очередь, должен иметь метод под названием prepare. Но $ this-> connect фактически содержит null .. –