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

Thực sự gặp khó khăn với CONCAT_WS ... hãy giúp một người mới :)

Điều đầu tiên tôi có thể thấy là sprintf() của bạn có hai tham số thay thế nhưng chỉ có một trình giữ chỗ. Tôi nghĩ bạn thực sự muốn nói

$updateSQL = sprintf ("UPDATE Leads SET Notes = CONCAT_WS('\n', Notes, %s) WHERE Id=%d",
    GetSQLValueString($_POST['note'], "text"),
    GetSQLValueString($_POST['Id'], "int"));

Ngoài ra, GetSQLValueString() của bạn chức năng tự động bao bọc các tham số "văn bản" bằng dấu ngoặc kép, vì vậy bạn cần xóa dấu ngoặc kép xung quanh trình giữ chỗ.

Tôi cũng đã thay đổi trình giữ chỗ ID thành %d vì tôi cho rằng bạn đang mong đợi một con số.

Bạn có thể được hưởng lợi từ việc bật báo cáo lỗi để phát triển. Lỗi này (và có thể là lỗi khác liên quan đến $Notes không xác định biến) sẽ giúp gỡ lỗi dễ dàng hơn.

Đặt cái này ở đầu tập lệnh của bạn (chỉ dành cho phát triển)

ini_set('display_errors', 'On');
error_reporting(E_ALL);

Cuộc thập tự chinh cá nhân

Thả thư viện MySQL và chuyển mã của bạn sang PDO, bạn sẽ không nhìn lại.

$stmt = $db->prepare('UPDATE Leads SET Notes = CONCAT_WS(:sep, Notes, :note) WHERE Id = :id');
$stmt->execute(array(
    'sep'  => PHP_EOL,
    'note' => $_POST['note'],
    'id'   => $_POST['Id']
));

Phương pháp tiếp cận tốt hơn

Cân nhắc lưu trữ từng mục nhập ghi chú trong một bảng riêng biệt có mối quan hệ khóa ngoại với dấu thời gian tạo và "Khách hàng tiềm năng" chính. Bằng cách đó, bạn chỉ cần truy xuất tất cả các mục nhập ghi chú con theo thứ tự tạo và các mục nhập mới được chèn một cách đơn giản.

CREATE TABLE LeadNotes (
    id         INT NOT NULL AUTO_INCREMENT,
    lead_id    INT,
    note       TEXT,
    created_dt TIMESTAMP,
    PRIMARY KEY (id),
    FOREIGN KEY (lead_id) REFERENCES Leads (Id)
        ON DELETE CASCADE
) ENGINE=INNODB;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. chuyển đổi hashmap thành stringarray

  2. Quản lý tài khoản người dùng, vai trò, quyền, xác thực PHP và MySQL - Phần 5

  3. lưu trữ số tiền trong mysql

  4. UTC_TIMESTAMP () có bị ảnh hưởng bởi tiết kiệm ánh sáng ban ngày không?

  5. Làm thế nào để bạn làm điều này trong mysql hoặc rails