ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Prepared Statement - Various Language Codes
    Web Hacking 2020. 3. 16. 20:19

    출처 : https://ko.wikipedia.org/wiki/프리페어드_스테이트먼트

     

    자바 JDBC

    import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class Main {
    
      public static void main(String[] args) throws SQLException {
        MysqlDataSource ds = new MysqlDataSource();
        ds.setDatabaseName("mysql");
        ds.setUser("root");
    
        try (Connection conn = ds.getConnection()) {
          try (Statement stmt = conn.createStatement()) {
            stmt.executeUpdate("CREATE TABLE IF NOT EXISTS products (name VARCHAR(40), price INT)");
          }
    
          try (PreparedStatement stmt = conn.prepareStatement("INSERT INTO products VALUES (?, ?)")) {
            stmt.setString(1, "bike");
            stmt.setInt(2, 10900);
            stmt.executeUpdate();
            stmt.setString(1, "shoes");
            stmt.setInt(2, 7400);
            stmt.executeUpdate();
            stmt.setString(1, "phone");
            stmt.setInt(2, 29500);
            stmt.executeUpdate();
          }
    
          try (PreparedStatement stmt = conn.prepareStatement("SELECT * FROM products WHERE name = ?")) {
            stmt.setString(1, "shoes");
            ResultSet rs = stmt.executeQuery();
            rs.next();
            System.out.println(rs.getInt(2));
          }
        }
      }
    }

     

     

     

     

     

    PHP PDO

    <?php
    $stmt = null;
    
    try {
      $conn = new PDO("mysql:dbname=mysql", "root");
      $conn->exec("CREATE TABLE IF NOT EXISTS products (name VARCHAR(40), price INT)");
      $stmt = $conn->prepare("INSERT INTO products VALUES (?, ?)");
      $params = array(array("bike", 10900),
                      array("shoes", 7400),
                      array("phone", 29500));
      foreach ($params as $param) $stmt->execute($param);
      $stmt = $conn->prepare("SELECT * FROM products WHERE name = ?");
      $params = array("shoes");
      $stmt->execute($params);
      echo $stmt->fetch()[1];
    } finally {
      if ($stmt !== null) $stmt->closeCursor();
    }
    ?>

     

     

    PERL DBI

    my $stmt = $db->prepare("SELECT * FROM users WHERE USERNAME = ? AND PASSWORD = ?");
    $stmt->execute($username, $password);

     

     

     

    C# ADO .NET

    using (SqlCommand command = connection.CreateCommand())
    {
        command.CommandText = "SELECT * FROM users WHERE USERNAME = @username AND ROOM = @room";
        command.Parameters.AddWithValue("@username", username);
        command.Parameters.AddWithValue("@room", room);
    
        using (SqlDataReader dataReader = command.ExecuteReader())
        {
            // ...
        }
    }

     

     

    Python DB-API

    import mysql.connector
    
    conn = None
    cursor = None
    
    try:
        conn = mysql.connector.connect(database="mysql", user="root")
        cursor = conn.cursor()
        cursor.execute("CREATE TABLE IF NOT EXISTS products (name VARCHAR(40), price INT)")
        params = [("bike", 10900),
                  ("shoes", 7400),
                  ("phone", 29500)]
        cursor.executemany("INSERT INTO products VALUES (%s, %s)", params)
        params = ("shoes",)
        cursor.execute("SELECT * FROM products WHERE name = %s", params)
        print(cursor.fetchall()[0][1])
    finally:
        if cursor is not None: cursor.close()
        if conn is not None: conn.close()

    댓글

lonun@네이버.com으로 연락해주세요!