Mysql
 sql >> база данни >  >> RDS >> Mysql

Наистина се боря с CONCAT_WS ... моля, помогнете на начинаещ :)

Първото нещо, което мога да видя, е вашият sprintf() има два параметъра за заместване, но само един заместител. Мисля, че наистина имаш предвид

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

Също така вашият GetSQLValueString() функцията автоматично обвива "текстовите" параметри с кавички, така че трябва да премахнете кавичките около заместващите.

Също така промених заместващия идентификатор на %d тъй като предполагам, че очаквате номер.

Може да се възползвате от активиране на докладване за грешки за разработка. Тази грешка (и евентуално друга по отношение на недефинирания $Notes). променлива) би направила отстраняването на грешки по-лесно.

Поставете това в горната част на вашия скрипт (само за разработка)

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

Личен кръстоносен поход

Изхвърлете MySQL библиотеката и преместете кода си в PDO, няма да гледате назад.

$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']
));

По-добър подход

Помислете за съхраняване на всеки запис в бележка в отделна таблица с връзка с външен ключ към родителския „Възможен клиент“ и времева марка за създаване. По този начин просто извличате всички записи на дъщерните бележки в реда на създаване и новите записи просто се вмъкват.

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. Заключване на ниво таблица в хибернация

  2. Laravel MySQL как да подредите резултатите в същия ред като в клаузата whereIn

  3. Как мога да променя няколко таблици наведнъж в mysql?

  4. Как да инсталирам MySQL и пакета MySQL на Python на OS X Leopard? Или как да науча как да бъда уеб разработчик с OS X?

  5. ГРЕШКА 1396 (HY000):Операцията DROP USER неуспешна за 'user'@'localhost'