SOで同様の質問を見つけましたが、まだ機能していません。
次のコードを実行すると...何もありません! エラーなし、何も挿入されていません。
phpコードは次のとおりです。
try
{
$obj_sqlsvr = new PDO('mysql:host=localhost;dbname=svmsys', 'root', '');
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage();
}
$servcatid = $_POST["servcatid"];
$sysname = $_POST["sysname"];
$sortorder = 1;
$friendlyname_fr = $_POST["friendlyname_fr"];
$friendlyname_en = $_POST["friendlyname_en"];
$fee_billtime = $_POST["fee_billtime"];
$fee_ot = isset($_POST["fee_ot"]) ? $_POST["fee_ot"] : 0;
$fee_1m = isset($_POST["fee_1m"]) ? $_POST["fee_1m"] : 0;
$fee_3m = isset($_POST["fee_3m"]) ? $_POST["fee_3m"] : 0;
$fee_6m = isset($_POST["fee_6m"]) ? $_POST["fee_6m"] : 0;
$fee_12m = isset($_POST["fee_12m"]) ? $_POST["fee_12m"] : 0;
$fee_24m = isset($_POST["fee_24m"]) ? $_POST["fee_24m"] : 0;
$fee_36m = isset($_POST["fee_36m"]) ? $_POST["fee_36m"] : 0;
$fee_other = isset($_POST["fee_other"]) ? $_POST["fee_other"] : 0;
$adm_timeadded = time();
$adm_addedby = 1;
$adm_active = $_POST["adm_active"];
$adm_start = $_POST["adm_start"];
$adm_expires = $_POST["adm_expires"];
$adm_soldlmt = $_POST["adm_soldlmt"];
try
{
$req = $obj_sqlsvr->prepare("INSERT INTO pricelist(id, servcatid, sortorder, sysname, friendlyname_fr, friendlyname_en, fee_ot, fee_1m, fee_3m, fee_6m, fee_12m, fee_24m, fee_36m, fee_other, fee_billtime, adm_timeadded, adm_addedby, adm_active, adm_start, adm_expires, adm_soldlmt)
VALUES(NULL, :servcatid,:sortorder,:sysname,:friendlyname_fr,:friendlyname_en,:fee_ot,:fee_1m,:fee_3m,:fee_6m,:fee_12m,
:fee_24m,:fee_36m,:fee_other,:fee_billtime,:adm_timeadded,:adm_addedby,:adm_active,:adm_start,:adm_expires,:adm_soldlmt)");
$req->bindParam(':servcatid', $servcatid);
$req->bindParam(':sortorder', $sortorder);
$req->bindParam(':sysname', $sysname);
$req->bindParam(':friendlyname_fr', $friendlyname_fr);
$req->bindParam(':friendlyname_en', $friendlyname_en);
$req->bindParam(':fee_ot', $fee_ot);
$req->bindParam(':fee_1m', $fee_1m);
$req->bindParam(':fee_3m', $fee_3m);
$req->bindParam(':fee_6m', $fee_6m);
$req->bindParam(':fee_12m', $fee_12m);
$req->bindParam(':fee_24m', $fee_24m);
$req->bindParam(':fee_36m', $fee_36m);
$req->bindParam(':fee_other', $fee_other);
$req->bindParam(':fee_billtime', $fee_billtime);
$req->bindParam(':adm_timeadded', $adm_timeadded);
$req->bindParam(':adm_addedby', $adm_addedby);
$req->bindParam(':adm_active', $adm_active);
$req->bindParam(':adm_start', $adm_start);
$req->bindParam(':adm_expires', $adm_expires);
$req->bindParam(':adm_soldlmt', $adm_soldlmt);
$res = $req->execute();
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage();
}
テーブル構造:
テーブル構造 (再び) SQL 形式:
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
CREATE TABLE IF NOT EXISTS `pricelist` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`servcatid` int(11) NOT NULL,
`order` int(11) DEFAULT NULL,
`sysname` varchar(100) NOT NULL,
`friendlyname_fr` varchar(100) NOT NULL,
`friendlyname_en` varchar(100) NOT NULL,
`fee_ot` decimal(10,2) DEFAULT NULL,
`fee_1m` decimal(10,2) DEFAULT NULL,
`fee_3m` decimal(10,2) DEFAULT NULL,
`fee_6m` decimal(10,2) DEFAULT NULL,
`fee_12m` decimal(10,2) DEFAULT NULL,
`fee_24m` decimal(10,2) DEFAULT NULL,
`fee_36m` decimal(10,2) DEFAULT NULL,
`fee_other` decimal(10,4) DEFAULT NULL,
`fee_billtime` int(2) NOT NULL DEFAULT '0',
`adm_timeadded` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`adm_addedby` int(11) NOT NULL,
`adm_active` tinyint(1) NOT NULL DEFAULT '1',
`adm_start` datetime DEFAULT NULL,
`adm_expires` datetime DEFAULT NULL,
`adm_soldlmt` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
エラーが表示されますか? もしそうなら、それがどこにあるか教えてもらえますか?
どうもありがとう、ジェレミー
編集 コードとテーブル構造の両方で、「order」フィールドの名前を「sortorder」に変更しました(Pekkaのおかげです)。これは予約語であるためです。まだ動作していません。
編集 準備および実行コマンドの周りにTry / Catchを追加します。/ die コマンドの代わりに echo コマンドを使用してエラーを表示します。(デビッド・ストラチャンに感謝)
EDIT Missing ' in query (Drew Pierce に感謝)
EDIT PDO クエリがパラメータ化されました (Andy Lester に感謝します)。エラー メッセージは表示されず、テーブルには行がありません。
サンプルクエリ (phpMyAdmin で作業中)
INSERT INTO pricelist(id, servcatid, sysname, sortorder, friendlyname_fr, friendlyname_en, fee_ot, fee_1m, fee_3m, fee_6m, fee_12m, fee_24m, fee_36m, fee_other, fee_billtime, adm_timeadded, adm_addedby, adm_active, adm_start, adm_expires, adm_soldlmt)
VALUES(NULL, '2','demo',NULL,'DEMO','DEMO', '12','','','','','','','','1', '1353533266','1','1','','','1')