SQL文について
お世話になります。
POST通信で受け取った内容をデータベースに書き込もうとすると
書き込みに失敗してしまいます。
namespace portfolio;
require_once dirname(__FILE__) . '/Bootstrap.class.php';
use portfolio\lib\Database;
$db = new Database(
Bootstrap::DB_HOST, Bootstrap::DB_USER, Bootstrap::DB_PASS,
Bootstrap::DB_NAME);
if($_POST !== false){
$dataArr = $_POST;
$problem = $dataArr['problem'];
$name1 = $dataArr['name1'];
$name2 = $dataArr['name2'];
$name3 = $dataArr['name3'];
$name4 = $dataArr['name4'];
}
$sql = "INSERT INTO hokuto_problem (problem,name1,name2,name3,name4) VALUES (".$problem.",".$name1.",".$name2.",".$name3.",".$name4.")";
$res = $db->execute($sql);
var_dump($res);
if($res === true){
echo "処理が成功しました";
}else{
echo "書き込みに失敗しました";
}
上記処理をしようとしたら書き込みに失敗してしまいます
Bootstrap.phpでは
namespace portfolio;
require_once dirname(__FILE__) . './../vendor/autoload.php';
class Bootstrap{
const DB_HOST = 'localhost';
const DB_NAME = 'hokuto';
const DB_USER = 'root';
const DB_PASS = 'root';
const APP_DIR = '/Applications/MAMP/htdocs/DT/';
// const TEMPLATE_DIR = self::APP_DIR.'templates/member/';
const CACHE_DIR = false ;
const APP_URL = 'http://localhost:8888/DT/';
const ENTRY_URL = self::APP_URL . 'portfolio/';
public static function loadClass($class){
$path = str_replace('\\', '/', self::APP_DIR . $class . '.class.php');
require_once $path;
}
}
spl_autoload_register(
[
'portfolio\Bootstrap',
'loadClass'
]
);
そして、Database.class.phpにおいては
amespace portfolio\lib;
class Database
{
public $db_con = null;
public $db_host = '';
public $db_user = '';
public $db_pass = '';
public $db_name = '';
public function __construct($db_host, $db_user, $db_pass, $db_name)
{
$this->db_con = $this->connectDB($db_host, $db_user, $db_pass, $db_name);
$this->db_host = $db_host;
$this->db_user = $db_user;
$this->db_pass = $db_pass;
$this->db_name = $db_name;
}
private function connectDB($db_host, $db_user, $db_pass, $db_name)
{
$tmp_con = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if ($tmp_con !== false) {
return $tmp_con;
} else {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
}
public function execute($sql)
{
return mysqli_query($this->db_con, $sql);
}
のコードを書いています
初心者に質問で、非常に見辛い面は承知の上で
大変心苦しいですが、何卒、ご回答いただけると幸いです
お礼
早速ありがとうございます。ということは、やはり参加ユーザー全員のgroupから該当するkeyを瞬時に問題なく消すことは難しいのですね。。おっしゃるとおり、ownerがグループの作者です。教えていただいた方法で対処したいと思います。ありがとうございました。