Hal pertama yang bisa saya lihat adalah sprintf()
your Anda memiliki dua parameter substitusi tetapi hanya satu placeholder. Saya pikir Anda benar-benar bermaksud
$updateSQL = sprintf ("UPDATE Leads SET Notes = CONCAT_WS('\n', Notes, %s) WHERE Id=%d",
GetSQLValueString($_POST['note'], "text"),
GetSQLValueString($_POST['Id'], "int"));
Juga, GetSQLValueString()
. Anda function secara otomatis membungkus parameter "teks" dengan tanda kutip, jadi Anda perlu menghapus tanda kutip di sekitar placeholder.
Saya juga mengubah tempat penampung ID menjadi %d
karena saya berasumsi Anda mengharapkan nomor.
Anda dapat mengambil manfaat dari mengaktifkan pelaporan kesalahan untuk pengembangan. Kesalahan ini (dan kemungkinan kesalahan lainnya terkait dengan $Notes
yang tidak ditentukan) variabel) akan membuat proses debug lebih mudah.
Tempatkan ini di bagian atas skrip Anda (hanya untuk pengembangan)
ini_set('display_errors', 'On');
error_reporting(E_ALL);
Perang Salib Pribadi
Jatuhkan perpustakaan MySQL dan pindahkan kode Anda ke PDO, Anda tidak akan melihat ke belakang.
$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']
));
Pendekatan yang Lebih Baik
Pertimbangkan untuk menyimpan setiap entri catatan dalam tabel terpisah dengan hubungan kunci asing ke induk "Prospek" dan stempel waktu pembuatan. Dengan begitu, Anda cukup mengambil semua entri catatan anak dalam urutan pembuatan dan entri baru hanya dimasukkan.
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;