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

ràng buộc giá trị CHÈN VÀO mysql perl

Bạn phải cung cấp một danh sách đối số, một đối số cho mỗi dấu hỏi, không phải đối số vô hướng đơn lẻ chứa các chuỗi đối số. Khi tôi trả lời câu hỏi của bạn trước đây, tôi đã bảo bạn làm:

my @values = map param($_), @account_field_order; # add values to array
push @values, $status;                  # for simplicity
$new_row = join ", ", ("?") x @values;  # add ? for each value

... # basically same code as before, except the execute statement:

$sth->execute(@values);      # arguments given will be inserted at placeholders

Ở đâu $new_row là chuỗi giữ chỗ của bạn, không phải danh sách đối số của bạn. Không phải:

$new_row .= "'" . param($field) . "', ";
...
$new_row .= "'$status'";
$sth->execute(qq($new_row)) or die $DBI::errstr;

Bởi vì $new_row được tính là một đối số, vì nó là một đối số vô hướng. Bạn cần một mảng hoặc danh sách có cùng độ dài với số lượng dấu hỏi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để sắp xếp kết quả truy vấn theo khoảng cách trong gói Laravel QueryBuilder / MySQL Spatial?

  2. Lệnh CREATE bị từ chối đối với người dùng?

  3. Hướng dẫn thiết kế cơ sở dữ liệu cho giỏ hàng trực tuyến trong MySQL

  4. GROUP và COUNT () độ tuổi trong CakePHP

  5. Cách quản lý một tập dữ liệu lớn bằng Spring MySQL và RowCallbackHandler