コードが2つの理由で失敗しています。
- 条件ステートメントは「submit」という名前の要素を探しています
- ステートメントの前に実行しようとしています。クエリを配置します(
mysqli_query()
)"以下 "値とdomysqli_query($dbCon, $userREQ3) or die(mysqli_error($dbCon));
補足:if ($_POST['submit']) {
を変更します to if (isset($_POST['submit'])) {
良いです。
および<input type="submit" value="Write Post"/>
to <input type="submit" name="submit" value="Write Post"/>
SQLインジェクション:
現在のコードは、SQLインジェクションに公開されています。
。 mysqli
を使用します プリペアドステートメント付き
、またはプリペアドステートメントを使用したPDO
。
また、コードの本体に変数があり、最初のページの読み込み時に未定義の変数xがスローされる可能性があります。
- これには三項演算子を使用します
- http://php.net/manual/en/language operator.comparison.php
- これをすべての入力/変数に使用します
述べられているように(以下のコメントで):データベースに接続し、別のAPIではなくmysqliメソッドを使用していることを確認してください。
異なるMySQLAPIは互いに混ざり合いません。接続からクエリまで同じMySQLAPIを使用します。
エラーレポートを追加します エラーを見つけるのに役立つファイルの先頭に移動します。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
補足: エラー報告はステージングでのみ行う必要があり、本番環境では行わないでください。
クエリが成功したかどうか:
クエリが実際に成功したか失敗したかを確認するには、エラーを確認し、affected_rows
を使用します 。
参照:
画像を使用する場合は、フォームタグに有効なenctypeを含める必要があります。
画像に挿入する方法や内容によっては、それが要因になる可能性があります。
画像をパスとして挿入したいが、それを「画像として」使用する場合、たとえばBLOBの場合、サイズに制限があります。 LONGBLOBを使用すると、データベースに移動する前にそのデータをエスケープする必要があります。
相談する:
- https://dev.mysql.com/doc/ refman / 5.0 / en / blob.html
- http://php.net/manual/ en / features.file-upload.post-method.php