sql >> データベース >  >> RDS >> Mysql

PHPがmySQLデータベースにコンテンツを挿入しない:テキスト、画像、その他

    コードが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がスローされる可能性があります。

    述べられているように(以下のコメントで):データベースに接続し、別のAPIではなくmysqliメソッドを使用していることを確認してください。

    異なるMySQLAPIは互いに混ざり合いません。接続からクエリまで同じMySQLAPIを使用します。

    エラーレポートを追加します エラーを見つけるのに役立つファイルの先頭に移動します。

    <?php 
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // rest of your code
    

    補足: エラー報告はステージングでのみ行う必要があり、本番環境では行わないでください。

    クエリが成功したかどうか:

    クエリが実際に成功したか失敗したかを確認するには、エラーを確認し、affected_rowsを使用します 。

    参照:

    画像を使用する場合は、フォームタグに有効なenctypeを含める必要があります。

    画像に挿入する方法や内容によっては、それが要因になる可能性があります。

    画像をパスとして挿入したいが、それを「画像として」使用する場合、たとえばBLOBの場合、サイズに制限があります。 LONGBLOBを使用すると、データベースに移動する前にそのデータをエスケープする必要があります。

    相談する:



    1. Transact-SQLを使用してストアドプロシージャの定義を取得する4つの方法

    2. 特定の場所にデータベースを備えたAndroidSQLiteデータベースは可能ですか?

    3. Mysql Count(*)as Total WHERE Total?

    4. MYSQL MYSQLで2つの日付間のカスタム月差を実行するにはどうすればよいですか?