WordPress ページで、mysql テーブルにデータを入力できるフォームを作成しようとしています。コードを入力すると、主キーは自動インクリメントされますが、データ自体はデータベースに入りません。mysql のテーブル情報は次のとおりです。
CREATE TABLE `macscabs`.`customers` (
`custno` INT NOT NULL AUTO_INCREMENT ,
`sname` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`fname` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`homeaddr` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`commondest` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`mobileno` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`homeno` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`email` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `custno` )
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
以下は、同じページに php がある WordPress ページのコードです。
<table>
<form name="form1" method="post" action="<?php echo $_SERVER[PHP_SELF] ?>">
<strong>Please enter your information in order to download the Macs Cabs App</strong>
<tr><td>
Surmane Name:</td><td><input name="sname" type="text" id="sname"></td></tr>
<tr><td>
First Name:</td><td><input name="fname" type="text" id="fname"></td></tr>
<tr><td>
Home Address:</td><td><input name="homeaddr" type="text" id="homeaddr"></td></tr>
<tr><td>
Most common Destination:</td><td><input name="commondest" type="text" id="commondest"></td></tr>
<tr><td>
Mobile Number:</td><td><input name="mobileno" type="text" id="mobileno"></td></tr>
<tr><td>
Home Number:</td><td><input name="homeno" type="text" id="homeno"></td></tr>
<td>
Email Address:</td><td><input name="email" type="text" id="email"></td></tr>
<tr><td>
<input type="submit" name="Submit" value="Submit"></td></tr>
</form></table>
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("macscabs", $con);
$sql="INSERT INTO `customers` (`sname`, `fname`, `homeaddr`, `commondest`, `mobileno`, `homeno`, `email`)
VALUES ('{$_POST['sname']}','{$_POST['fname']}','{$_POST['homeaddr']}','{$_POST['commondest']}','{$_POST['m obileno']}',
'{$_POST['homeno']}','{$_POST['email']}')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
$info = mysql_info(); echo $info;
mysql_close($con);
?>
また、以下のコードを入力してフォームを使用せずにデータを手動で挿入することにより、データベースと Web ページ間の接続をテストしましたが、動作します。ただし、フォームを使用して挿入しようとすると、機能しません。
mysql_query("INSERT INTO customers (sname, fname, homeaddr, commondest, mobileno, homeno, email)
VALUES ('mcguinness','dave','moate','athlone','0254','56587',5)");