Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trích xuất mã PHP từ TextArea và chuyển đến Mysql CHỌN TRONG Truy vấn

Đầu tiên về mẫu:

  • Bạn không cần bất kỳ nhóm chụp nào chỉ cần sử dụng \K để bắt đầu lại trận đấu đầy đủ.
  • Tôi sẽ sử dụng '[^']*' trên thành phần được trích dẫn đơn lẻ đầu tiên / trống trong chuỗi đầu vào của bạn đề phòng trường hợp một số văn bản lấp đầy vị trí đó.

Giới thiệu về truy vấn của bạn:

  • Nó không an toàn. Bạn không được chèn trực tiếp dữ liệu do người dùng gửi vào truy vấn vì mục đích bảo mật.
  • Đây là các câu lệnh được chuẩn bị sẵn với ? trình giữ chỗ được sử dụng.
  • Vì số lượng trình giữ chỗ / params-to-be-binding có thể thay đổi, nên tích chập của call_user_func_array() là bắt buộc.
  • Tôi cũng đã triển khai bind_result() để hỗ trợ quá trình xử lý tập kết quả.

Mã chưa được kiểm tra:

$_POST['newfeatured']="new myProduct('', 'bbc_609'),
new myProduct('', '35857'),";

if(preg_match_all("/new (?:my|featured)Product\('[^']*', '\K[^']*/",$_POST['newfeatured'],$prd_ids)){
    $params=$prd_ids[0];  // the fullstring matches
    $count=count($params);  // number of fullstring matches
    $csph=implode(',',array_fill(0,$count,'?'));  // comma-separated placeholders

    $query="SELECT A.productid, A.name, A.brand, B.code
            FROM product A
            INNER JOIN price B ON A.productid=B.productid
            WHERE A.productid IN ($csph);";

    $stmt=$mysqli->prepare($query);  // for security reasons

    array_unshift($params,str_repeat('s',$count));  // prepend the type values string
    $ref=[];  // add references
    foreach($params as $i=>$v){
        $ref[$i]=&$params[$i];  // pass by reference as required/advised by the manual
    }
    call_user_func_array([$stmt,'bind_param'],$ref);    

    $stmt->execute();
    $stmt->bind_result($id,$name,$brand,$code);
    while($stmt->fetch()){
        echo "Whatever you want to do with the results: $id, $name, $brand, $code\n";
    }
    $stmt->close();
}else{
    echo "bonk";
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mức độ cô lập với Flask-SQLAlchemy

  2. Php 5.3 magick trích dẫn gpc

  3. MySQL:Bạn có thể chỉ định một giới hạn ngẫu nhiên không?

  4. Không thể kết nối với cơ sở dữ liệu sau một số lần triển khai trên máy chủ

  5. Khóa ngoại có thể hoạt động như một khóa chính không?