我收到上述錯誤,但我要插入的列和資料的計數均為 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、totalDailyDosage
、totalDailyPills
、頻率
、freqMetric
、am
、noon
、pm phpcnendc phpcn、
bed
、prn
、pharmacy
、lastFill
、pills
) 值('1111111' , '測試1', '測試2', '喬丹', '測試3', '50', '毫克', '100, 2', '1', 'BID', '1', '1', '0' , '0', '0', 'KJdh', '2022-04-15', '60') SQLSTATE[21S01]:插入值清單與列清單不符:1136 列計數與第 1 行的值計數不符
雙方(INSERT INTO
和 VALUES
)都有 19
當我使用 phpMyAdmin 插入資料時,傳回的結果如下:
插入
prescriptions
(keyID
,rxID
,rxPrimeName
,rxAltName
,病人
,prescriber
,phpcnc phpcndpp、dppMetric
、totalDailyDosage
、totalDailyPills
、頻率
、freqMetric
、am
、noonphpcnendc phpcn、
pm
、bed
、prn
、pharmacy
、lastFill
、pills
) 值(NULL , '1234567', '測試1', '測試2', '喬丹', '測試3', '30', '毫克', '60', '2', '1', 'BID', '1', ' 1', '0', '0', '0', '中庭', '2022-04-15' , '60');
請原諒上面列名稱上的區塊 - 我在列名稱周圍使用 backquote
#phpMyAdmin 工作得很好是的,我知道變數資料是不同的,但所有可接受的類型都基於列
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' )";