Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Benar-benar berjuang dengan CONCAT_WS ... tolong bantu pemula :)

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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP:memiliki Banyak asosiasi yang tidak dikenali

  2. Gunakan Database Relasional MySQL di Fedora 12

  3. Pembaruan SQL pada pembaruan kunci duplikat

  4. backup database mysql dengan mysqldump

  5. Bagaimana cara membuat Pengingat Kata Sandi yang Tenang dan mengubah bidang email Pengguna menjadi bidang nama pengguna dengan Laravel 5.0?