Home > Net >  Why am I getting a "Insert value list does not match column list: 1136 Column count doesn'
Why am I getting a "Insert value list does not match column list: 1136 Column count doesn'

Time:04-16

I am getting the aforementioned error but my count on columns and data to insert are both 19

try {
    $db = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "INSERT INTO prescriptions (
        rxID, rxPrimeName, rxAltName, patient, prescriber, dpp, dppMetric, totalDailyDosage, 
        totalDailyPills, frequency, freqMetric, am, noon, pm, bed, prn, pharmacy, lastFill, pills
        )
    VALUES 
        (
        '$rxID', '$drugName1', '$drugName2', '$patient', '$prescriber', '$dpp', '$metric', '$totalDailyDosage,
        $totalDailyPills', '$quantity', '$frequency', '$am', '$noon', '$pm', '$bed', '$prn', '$pharmacy', '$lastFill', '$pills'
        )";
    $db->exec($sql);
    echo "New record created successfully";
} catch (PDOException $e) {
    echo $sql . "<br>" . $e->getMessage();
}
$db = null;

Here is the exact error I'm receiving:

INSERT INTO prescriptions ( rxID, rxPrimeName, rxAltName, patient, prescriber, dpp, dppMetric, totalDailyDosage, totalDailyPills, frequency, freqMetric, am, noon, pm, bed, prn, pharmacy, lastFill, pills ) VALUES ( '1111111', 'Test1', 'Test2', 'Jordan', 'Test3', '50', 'mg', '100, 2', '1', 'BID', '1', '1', '0', '0', '0', 'KJdh', '2022-04-15', '60' ) SQLSTATE[21S01]: Insert value list does not match column list: 1136 Column count doesn't match value count at row 1

Both sides (INSERT INTO and VALUES) have 19

When I use phpMyAdmin to insert the data, here's what it comes back with:

INSERT INTO prescriptions (keyID, rxID, rxPrimeName, rxAltName, patient, prescriber, dpp, dppMetric, totalDailyDosage, totalDailyPills, frequency, freqMetric, am, noon, pm, bed, prn, pharmacy, lastFill, pills) VALUES (NULL, '1234567', 'Test1', 'Test2', 'Jordan', 'Test3', '30', 'mg', '60', '2', '1', 'BID', '1', '1', '0', '0', '0', 'Atrium', '2022-04-15', '60');

Please forgive the blocks on the column names above - I'm using backquote around the column names

The phpMyAdmin one works perfectly yes I'm aware that the variable data is different, but all acceptable types based on the column

CodePudding user response:

I counted 18. Looks like you are missing ' at '100, 2',

CodePudding user response:

The problem is your values clause is missing quotes:

VALUES 
(
'$rxID', '$drugName1', '$drugName2', '$patient', '$prescriber', '$dpp', '$metric',
'$totalDailyDosage, <-- missing quote before comma
-->> missing quote --> $totalDailyPills', 
'$quantity', '$frequency', '$am', '$noon', '$pm', '$bed', '$prn', '$pharmacy', '$lastFill', '$pills'
)";
  • Related