首頁  >  問答  >  主體

當資料匹配時,為什麼我會收到“插入值列表與列列表不匹配:1136 列計數與值計數不匹配”錯誤?

我收到上述錯誤,但我要插入的列和資料的計數均為 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;

這是我收到的確切錯誤:

插入prescriptions ( rxID, rxPrimeName, rxAltName, 病人, prescriber, dpp, phpcn cphpcndppMetric、totalDailyDosagetotalDailyPills頻率freqMetricamnoon pm phpcnendc phpcn、bedprnpharmacylastFillpills ) 值('1111111' , '測試1', '測試2', '喬丹', '測試3', '50', '毫克', '100, 2', '1', 'BID', '1', '1', '0' , '0', '0', 'KJdh', '2022-04-15', '60') SQLSTATE[21S01]:插入值清單與列清單不符:1136 列計數與第 1 行的值計數不符

雙方(INSERT INTOVALUES)都有 19

當我使用 phpMyAdmin 插入資料時,傳回的結果如下:

插入prescriptionskeyIDrxIDrxPrimeNamerxAltName病人prescriber,phpcnc phpcndppdppMetrictotalDailyDosagetotalDailyPills頻率freqMetricamnoonphpcnendc phpcn、pmbedprnpharmacylastFillpills) 值(NULL , '1234567', '測試1', '測試2', '喬丹', '測試3', '30', '毫克', '60', '2', '1', 'BID', '1', ' 1', '0', '0', '0', '中庭', '2022-04-15' , '60');

請原諒上面列名稱上的區塊 - 我在列名稱周圍使用 backquote

#phpMyAdmin 工作得很好是的,我知道變數資料是不同的,但所有可接受的類型都基於列

P粉561323975P粉561323975181 天前303

全部回覆(2)我來回復

  • P粉268284930

    P粉2682849302024-03-27 09:59:03

    問題是您的 values 子句缺少引號:

    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'
    )";

    回覆
    0
  • P粉665679053

    P粉6656790532024-03-27 00:05:56

    我數了一下,有18個。 看起來您在“100, 2”處缺少 ',

    回覆
    0
  • 取消回覆