挿入に対して奇妙な動作が発生しmysqli
ます。Windows(ローカルホスト開発PC)では正常に動作していますが、Linux(共有ホスティング)では期待どおりに動作していません。
フィールドheight
をとして定義しましVARCHAR(10)
た。SELECT
ステートメントを使用してデータを読み取る場合:
5' 6"
として表示されます5\' 6\"
テーブル構造:
CREATE TABLE IF NOT EXISTS `user_details` (
`uname` varchar(20) NOT NULL,
`height` varchar(10) NOT NULL,
`body_type` varchar(20) NOT NULL,
`hair_color` varchar(20) NOT NULL,
`eye_color` varchar(20) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`uname`),
UNIQUE KEY `uname` (`uname`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
データを読み取るためのコード
$statement = $mysqli->prepare("SELECT * from user_details WHERE uname = ?");
$statement->bind_param("s", $uname);
$statement->execute();
if ($statement->bind_result($uname, $height, $body, $hair, $eye, $desc) && $statement->fetch())
{
// work with data.
}
INSERTに使用されるコード
save_data.php
$statement = $mysqli->prepare("INSERT INTO user_details VALUES(?, ?, ?, ?, ?, ?)");
$statement->bind_param("ssssss", $_POST['uname'], $_POST['height'], $_POST['body'], $_POST['hair'], $_POST['eye'], $_POST['description']);
if ($statement->execute())
{
echo "<div>Username successfully added</div>";
}
save_data.html
<form method="POST" enctype="multipart/form-data">
<table>
<tr><td>Name (Must be unique) : </td><td><input type="text" name="uname"></td></tr>
<tr><td>Profile Image : </td><td><input type="file" name="pic"></td></tr>
<tr><td>Height : </td><td><input type="text" name="height"></td></tr>
<tr><td>Body Type: </td><td><input type="text" name="body"></td></tr>
<tr><td>Hair Color: </td><td><input type="text" name="hair"></td></tr>
<tr><td>Eye Color: </td><td><input type="text" name="eye"></td></tr>
<tr><td>Description: </td><td><textarea name="description" rows="5"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" value="Save New User"></td></tr>
</table>
</form>
LinuxとWindowsでの表示
Linux
ウィンドウズ