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

delphi dxExpress MySQL:無効なLAST_INSERT_ID値

    IDを一度に取得する必要があります

    SQLQry := TSQLQuery.Create(self);
    with SQLQry do begin
      SQLConnection := SQLCon;
    
      SQL.Add('INSERT INTO Sample_Table ');
      SQL.Add('(mobile_number, message_body) VALUES');
      SQL.Add(format('(%s, %s);',[QuotedStr('989121011689'), QuotedStr('Text1')]));
    
      SQL.Add('SELECT LAST_INSERT_ID() EngineRefNo;');
    
      Open;
      ListBox1.items.Add(FieldByName('EngineRefNo').AsString);
      Close;
    end;
    
    SQLCon.Close;
    

    SQLインジェクションを防ぐためにパラメータを使用することを検討する必要があります

    SQLQry := TSQLQuery.Create(self);
    with SQLQry do begin
      SQLConnection := SQLCon;
    
      SQL.Add('INSERT INTO Sample_Table ');
      SQL.Add('( mobile_number, message_body ) VALUES');
      SQL.Add('( :mobile_number, :message_body );');
    
      SQL.Add('SELECT LAST_INSERT_ID() EngineRefNo;');
    
      ParamByName( 'mobile_number' ).Value := '989121011689';
      ParamByName( 'message_body' ).Value := 'Text1';
    
      Open;
      ListBox1.items.Add(FieldByName('EngineRefNo').AsString);
      Close;
    end;
    
    SQLCon.Close;
    


    1. PHPサインアップシステムが機能しない(phpmyadmin、wampserver)

    2. MySQLでパイプ連結演算子を有効にする方法

    3. SQLAlchemyは複数の関係を積極的にロードしています

    4. MySQLで一時的なプロシージャを作成するにはどうすればよいですか?