phpでsql(mysqli)の文を準備しようとしましたが、上記のエラーコードがあります。私は私は私がエラーを取得していないエコーに示されている任意のプレースホルダせずに正確な文を挿入する場合はbooleanでメンバー関数bind_param()を呼び出すと、プレースホルダーを使用するときにprepare()関数がfalseを返す
if (!$this->isUserExist($username, $token)) {return false;}
$tables = array();
$tables[0] = "faculty";
$tables[1] = "department";
$tables[2] = "teacher";
$tables[3] = "announcement";
$ttable = $tables[$table];
var_dump($ttable); // faculty
var_dump($id); // 6
echo "DELETE FROM ".$ttable." WHERE ".$ttable.".id = ".$id.""; //returns DELETE FROM faculty WHERE faculty.id = 6
$stmt = $this->con->prepare("DELETE FROM ? WHERE ?.id = ?"); //Fatal error occurs here
$stmt->bind_param("sss",$ttable,$ttable,$id);
//$stmt->execute();
if ($stmt->num_rows> 0) {
return "true";
} else {
return "false";
}
、およびMySQLデータベースが正常に行を削除します。これは私が書いたコードです。
$stmt = $this->con->prepare("DELETE FROM faculty WHERE faculty.id = 6"); //no errors occur, executing this statement does affect row in MySQL database
:
はこのような何かを行います。 __Over__。 –
テーブル名とカラム名の両方を割り当てる正しい方法は何ですか? – user3460802