は、MySQL図である:誰でもこのPHPがデータベースにデータを書き込まない理由を知っていますか?
そして、ここに私のコードです:
<html>
<head>
</head>
<body>
<form action="formwrite.php" method="post">
Description:<input type="text" name="description"><br/>
Material:<input type="text" name="material"><br/>
Type:<input type="text" name="type"><br/>
Condition:<input type="text" name="condition"><br/>
Price:<input type="text" name="price"><br/>
<input type="submit" name="submit">
</form>
<?php
if(isset($_POST['submit'])){
$con=mysql_connect("localhost", "mysql", "test1");
if (!$con) {
die ("Can not connect:". mysql_error());
}
mysql_select_db("owenp",$con);
$sql="INSERT INTO items(material,type,date,condition,price,description) VALUES('$_POST[material]','$_POST[type]',now(),'$_POST[condition]','$_POST[price]','$_POST[description]')";
mysql_query($sql,$con);
mysql_close($con);
}
?>
</body>
</html>
私が経験してる問題は、PHPがエラーなしで実行されますが、レコードがで作成されないことです私のデータベース。私は何度もチェックして、すべてが正しい場所、つまりユーザー名とデータベース/テーブル名を指しています。
ありがとうございました。ですから、$ _POSTを交換する必要がある他のすべてのパラメータ
[リトルボビー](http://bobby-tables.com/は)[スクリプトがSQLインジェクション攻撃のリスクがある。]と言う(のhttp:// stackoverflowの.com/questions/60174/how-can-i-prevent-sql-injection-in-php)を参照してください。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! –
[mysql_ *関数の使用をやめてください](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 [これらの拡張機能](http://php.net/manual/en/migration70.removed-exts-sapis.php)はPHP 7で削除されました。[prepared](http://en.wikipedia.org/ [PDO](http://php.net/manual/en/pdo.prepared-statements.php)および[MySQLi](http://php.net/manual/en/mysqli.quickstart)のwiki/Prepared_statement)ステートメント.prepared-statements.php)、PDOの使用を検討してください。[これは本当に簡単です](http://jayblanchard.net/demystifying_php_pdo.html)。 –
他にも、 'type'は[MySQL予約語](https://dev.mysql.com/doc/refman/5.5/en/keywords.html)です。だから、カラム名やテーブル名として使用したい場合は、バッククォート( '\' ')で囲む必要があります。 –