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

MySQLiおよびPHPを使用してSQLデータベースに送信されていないデータ

    変数名を確認して、好みに合わせて調整する必要がある場合があります。プリペアドステートメントを使用して、SQLインジェクションを防ぎます。

    if(isset($_POST['submit'])){
    
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection can be established
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
        $target_path = '';
        if (!empty($_FILES["uploadedimage"]["name"])) {
            $file_name=$_FILES["uploadedimage"]["name"];
            $temp_name=$_FILES["uploadedimage"]["tmp_name"];
            $imgtype=$_FILES["uploadedimage"]["type"];
            $ext= GetImageExtension($imgtype);
            $imagename= $_FILES['uploadedimage']['name'];
            $target_path = "images/".$imagename;
        }
    
        $date = $_POST['date'];
        $retrace = $_POST['retrace'];
        $start_of_swing_trade = $_POST['start_of_swing_trade'];
        $end_of_swing_trade = $_POST['end_of_swing_trade'];
        $bull_flag = $_POST['bull_flag'];
        $bear_flag = $_POST['bear_flag'];
        $ema_crossover = $_POST['ema_crossover'];
        $trading_instrument = $_POST['trading_instrument'];
    
        if($date !=''||$trading_instrument !=''){
    
            $sql = "INSERT into charts (charts_URL, charts_date, charts_retrace, charts_start_of_swing_trade, charts_end_of_swing_trade, charts_bullflag, charts_bearflag, charts_ema_crossover, charts_trading_instrument) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
            // s = string, i = integer, d = double, b = blob
            //preparing statement
            $stmt = $conn->prepare($sql);
            if(!$stmt){ exit("prepare failed");}
            //binding param
            $bind = $stmt->bind_param('sssssssss',$target_path, $date, $retrace, $start_of_swing_trade, $end_of_swing_trade, $bull_flag, $bear_flag, $ema_crossover, $trading_instrument);
            if(!$bind){ exit("bind failed");}
            //will return 0 if fail
            if($stmt->execute() != 0){
    
                echo "New record created successfully";
            }else{ echo "Failed to insert new record";}
    
        }
    //close connection
    $conn->close();
    }
    


    1. SQLの列の値の可能なすべての組み合わせを返します

    2. Herokuの進化におけるエラー

    3. PythonのMySQLdb:「localhost」のMySQLサーバーに接続できません

    4. SQLに英数字シーケンスジェネレータを使用することは可能ですか?