私はクラスを学習していますが、mysqlバインドパラメータを使用してデータを追加しようとしていますが、できません。私はそれをすることができます。Mysqlクラスで挿入する:oopsで挿入することができません
エラー:解析エラー:構文エラー、予期しない '$ mysqliの'(T_VARIABLE)、ライン上customer.phpに機能(T_FUNCTIONを)期待し4
のindex.php
$adduser= new Userclass();
echo $adduser->addcutomer();
DbのClass.phpと
class db extends mysqli {
private static $instance = null;
private $user = "root";
private $pass = "xxx";
private $dbName = "xxx";
private $dbHost = "localhost";
public static function getInstance() {
if (!self::$instance instanceof self) {
self::$instance = new self;
}
return self::$instance;
}
public function __clone() {
trigger_error('Clone is not allowed.', E_USER_ERROR);
}
public function __wakeup() {
trigger_error('Deserializing is not allowed.', E_USER_ERROR);
}
private function __construct() {
parent::__construct($this->dbHost, $this->user, $this->pass, $this->dbName);
if (mysqli_connect_error()) {
exit('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
parent::set_charset('utf-8');
}
public function dbquery($query)
{
if($this->query($query))
{
return true;
}
}
}
顧客クラス
class Userclass extends db{
$mysqli=db::getInstance();
public function addcutomer(){
$query = $mysqli->prepare("INSERT INTO `user` (`firstname`,`lastname`) VALUES (?, ?)");
$col1 = 'abc';
$col2 = 'def';
$query->bind_param('ss', $col1, $col2);
$query->execute();
$query->close();
return true;
}
パス$のCOL1を願って、これを試してみてください。 $ col2 = def;これは$ col1 = 'abc'のような文字列です。 $ col2 = 'def'; –
オブジェクトのプロパティを設定およびアクセスする方法については、マニュアルをチェックする必要があります。また、すべてのクラスが 'mysqli'を拡張したいとは思わないことに注意してください。代わりに依存性注入を見てください。 – jeroen
@jeroen、上記のコードで私を助けてください、db.phpまたはcustomerclass.phpに必要な調整があるようです – gaurav