記事とタイトルをデータベースに保存しようとしています。私はmysqliでOOPプログラミング言語(ゲッター、セッター)を使用しています。ここでは、クラスからの私のコードを見ることができます。
<?php
class Article {
private $m_sTitle;
private $m_sArticle;
public function __set($p_sProperty, $p_vValue)
{
switch($p_sProperty)
{
case "Title" :
$this -> m_sTitle = $p_vValue;
break;
case "Article" :
$this -> m_sArticle = $p_vValue;
break;
}
}
public function __get($p_sProperty)
{
$vResult = null;
switch($p_sProperty)
{
case "Title" :
$vResult = $this -> m_sTitle;
break;
case "Article" :
$vResult = $this -> m_sArticle;
break;
}
}
public function saveArticle()
{
include("connection.php");
$sSql = "INSERT INTO tblArticles
(titel,
article,
)
VALUES
('".mysqli_real_escape_string($mysqli, $this -> m_sTitle) . "',
'" .mysqli_real_escape_string($mysqli, $this -> m_sArticle) . "',
);";
if (!$mysqli -> query($sSql))
{
throw new Exception("Something went wrong");
}
}
}
?>
ここでは、phpファイルのコードを確認できます。
if(isset($_GET['title'])=="")
{
//do nothing
}
else {
$titel = $_GET['title'];
$artikel = $_GET['content'];
include("assets/connection.php");
include("assets/article.class.php");
$article1 = new Article;
$article1 -> Title = $titel;
$article1 -> Article = $artikel;
$article1 -> saveArticle() ;
}
このエラーが表示されます:致命的なエラー:キャッチされない例外'例外'とメッセージ'../assets/article.class.php:48スタックトレース:#0 ../index.php(52):Article- > saveArticle()#1{main}が..assets/article.class.phpの48行目にスローされます(この行$ article1 = new Article;)
返信ありがとうございます!
クエリ(タイプエラー)を置き換えることで問題が解決しました。この文の下に動作部分(クエリ)が表示されます。
$sSql = "INSERT INTO tblArticles
(titel,
article
)
VALUES
('".mysqli_real_escape_string($mysqli, $this -> m_sTitle) . "',
'" .mysqli_real_escape_string($mysqli, $this -> m_sArticle) . "');";