列数与第 1 行的值数不匹配,我没有发现错误
Column count doesn't match value count at row 1, and i don't find the mistake
我有一个 PHP-脚本,应该将一些值插入 mysql-db。
我认为它一定有效,但总是出现错误“列数与第 1 行的值数不匹配”。我一遍又一遍地看,尝试了一些东西,但我没有发现错误。
有谁能帮我看看吗?
代码如下:
<?php
$pdo = new PDO('mysql:host=www.mysite.com;dbname=db00000001', 'dbo00000001', 'password');
$statement = $pdo->prepare("INSERT INTO tickets (Fehlernummer,
Programmversion,
DBVersion,
Status,
Kategorie,
Dringlichkeit,
NoWork,
Kurzbeschreibung,
Langbeschreibung,
Benutzer,
BenutzerName,
Datum,
BehDatum) VALUES (:fehlernummer,
:programmversion,
:dbversion,
:status,
:kategorie,
:dringlichkeit,
:nowork,
:kurzbeschreibung,
:langbeschreibung,
:benutzer,
:benutzername,
:datum
:behdatum)");
$statement->bindValue('fehlernummer', $_GET['fehlernummer']);
$statement->bindValue('programmversion', $_GET['programmversion']);
$statement->bindValue('dbversion', $_GET['dbversion']);
$statement->bindValue('status', $_GET['status']);
$statement->bindValue('kategorie', $_GET['kategorie']);
$statement->bindValue('dringlichkeit', $_GET['dringlichkeit']);
$statement->bindValue('nowork', $_GET['nowork']);
$statement->bindValue('kurzbeschreibung', $_GET['kurzbeschreibung']);
$statement->bindValue('langbeschreibung', $_GET['langbeschreibung']);
$statement->bindValue('benutzer', $_GET['benutzer']);
$statement->bindValue('benutzername', $_GET['benutzername']);
$statement->bindValue('datum', $_GET['datum']);
$statement->bindValue('behdatum', $_GET['behdatum']);
if ($statement->execute()) {
echo 'OK '."<br />";
} else {
echo 'Failes '."<br />";
echo $statement->queryString."<br />";
print_r($pdo->errorInfo());
echo "<br />";
print_r($statement->errorInfo());
print_r($_GET);
echo "<br />";
}
$lastid=$pdo->lastInsertId();
echo $lastid;
?>
这是一个 URL-String:
http://www.example.com/scripts/newerror.php?fehlernummer=00003&programmversion=4.6.1.14&dbversion=4.6.1.14&status=0&kategorie=Nocheinekategorie&dringlichkeit=0&nowork=0&kurzbeschreibung=fsafa&langbeschreibung=fdsafafds&benutzer=diete&benutzername=dieter&datum=2017-03-23%2020:15:43&behdatum=1899-01-01%2000:00:00
现在响应:
Failes
INSERT INTO tickets (Fehlernummer, Programmversion, DBVersion, Status, Kategorie, Dringlichkeit, NoWork, Kurzbeschreibung, Langbeschreibung, Benutzer, BenutzerName, Datum, BehDatum) VALUES (:fehlernummer, :programmversion, :dbversion, :status, :kategorie, :dringlichkeit, :nowork, :kurzbeschreibung, :langbeschreibung, :benutzer, :benutzername, :datum :behdatum)
Array ( [0] => 00000 [1] => [2] => )
Array ( [0] => 21S01 [1] => 1136 [2] => Column count doesn't match value count at row 1 ) Array ( [fehlernummer] => 00003 [programmversion] => 4.6.1.14 [dbversion] => 4.6.1.14 [status] => 0 [kategorie] => Nocheinekategorie [dringlichkeit] => 0 [nowork] => 0 [kurzbeschreibung] => fsafa [langbeschreibung] => fdsafafds [benutzer] => diete [benutzername] => dieter [datum] => 2017-03-23 20:15:43 [behdatum] => 1899-01-01 00:00:00 )
0
感谢他们给我的小费
迪特
:datum
和 :behdatum
之间的值列表中缺少逗号
$statement = $pdo->prepare("INSERT INTO tickets
(Fehlernummer, Programmversion,
DBVersion, Status,
Kategorie, Dringlichkeit,
NoWork, Kurzbeschreibung,
Langbeschreibung, Benutzer,
BenutzerName, Datum, BehDatum)
VALUES (:fehlernummer, :programmversion,
:dbversion, :status,
:kategorie, :dringlichkeit,
:nowork, :kurzbeschreibung,
:langbeschreibung, :benutzer,
:benutzername, :datum, :behdatum)");
// missing comma was here ----------------------- ^
我有一个 PHP-脚本,应该将一些值插入 mysql-db。
我认为它一定有效,但总是出现错误“列数与第 1 行的值数不匹配”。我一遍又一遍地看,尝试了一些东西,但我没有发现错误。
有谁能帮我看看吗?
代码如下:
<?php
$pdo = new PDO('mysql:host=www.mysite.com;dbname=db00000001', 'dbo00000001', 'password');
$statement = $pdo->prepare("INSERT INTO tickets (Fehlernummer,
Programmversion,
DBVersion,
Status,
Kategorie,
Dringlichkeit,
NoWork,
Kurzbeschreibung,
Langbeschreibung,
Benutzer,
BenutzerName,
Datum,
BehDatum) VALUES (:fehlernummer,
:programmversion,
:dbversion,
:status,
:kategorie,
:dringlichkeit,
:nowork,
:kurzbeschreibung,
:langbeschreibung,
:benutzer,
:benutzername,
:datum
:behdatum)");
$statement->bindValue('fehlernummer', $_GET['fehlernummer']);
$statement->bindValue('programmversion', $_GET['programmversion']);
$statement->bindValue('dbversion', $_GET['dbversion']);
$statement->bindValue('status', $_GET['status']);
$statement->bindValue('kategorie', $_GET['kategorie']);
$statement->bindValue('dringlichkeit', $_GET['dringlichkeit']);
$statement->bindValue('nowork', $_GET['nowork']);
$statement->bindValue('kurzbeschreibung', $_GET['kurzbeschreibung']);
$statement->bindValue('langbeschreibung', $_GET['langbeschreibung']);
$statement->bindValue('benutzer', $_GET['benutzer']);
$statement->bindValue('benutzername', $_GET['benutzername']);
$statement->bindValue('datum', $_GET['datum']);
$statement->bindValue('behdatum', $_GET['behdatum']);
if ($statement->execute()) {
echo 'OK '."<br />";
} else {
echo 'Failes '."<br />";
echo $statement->queryString."<br />";
print_r($pdo->errorInfo());
echo "<br />";
print_r($statement->errorInfo());
print_r($_GET);
echo "<br />";
}
$lastid=$pdo->lastInsertId();
echo $lastid;
?>
这是一个 URL-String:
http://www.example.com/scripts/newerror.php?fehlernummer=00003&programmversion=4.6.1.14&dbversion=4.6.1.14&status=0&kategorie=Nocheinekategorie&dringlichkeit=0&nowork=0&kurzbeschreibung=fsafa&langbeschreibung=fdsafafds&benutzer=diete&benutzername=dieter&datum=2017-03-23%2020:15:43&behdatum=1899-01-01%2000:00:00
现在响应:
Failes
INSERT INTO tickets (Fehlernummer, Programmversion, DBVersion, Status, Kategorie, Dringlichkeit, NoWork, Kurzbeschreibung, Langbeschreibung, Benutzer, BenutzerName, Datum, BehDatum) VALUES (:fehlernummer, :programmversion, :dbversion, :status, :kategorie, :dringlichkeit, :nowork, :kurzbeschreibung, :langbeschreibung, :benutzer, :benutzername, :datum :behdatum)
Array ( [0] => 00000 [1] => [2] => )
Array ( [0] => 21S01 [1] => 1136 [2] => Column count doesn't match value count at row 1 ) Array ( [fehlernummer] => 00003 [programmversion] => 4.6.1.14 [dbversion] => 4.6.1.14 [status] => 0 [kategorie] => Nocheinekategorie [dringlichkeit] => 0 [nowork] => 0 [kurzbeschreibung] => fsafa [langbeschreibung] => fdsafafds [benutzer] => diete [benutzername] => dieter [datum] => 2017-03-23 20:15:43 [behdatum] => 1899-01-01 00:00:00 )
0
感谢他们给我的小费
迪特
:datum
和 :behdatum
$statement = $pdo->prepare("INSERT INTO tickets
(Fehlernummer, Programmversion,
DBVersion, Status,
Kategorie, Dringlichkeit,
NoWork, Kurzbeschreibung,
Langbeschreibung, Benutzer,
BenutzerName, Datum, BehDatum)
VALUES (:fehlernummer, :programmversion,
:dbversion, :status,
:kategorie, :dringlichkeit,
:nowork, :kurzbeschreibung,
:langbeschreibung, :benutzer,
:benutzername, :datum, :behdatum)");
// missing comma was here ----------------------- ^