这让我整天发疯 - 现在我需要一些帮助......
我尝试了两种将数据插入数据库的方法,但都以我以前从未见过的方式失败!
如 mysqld.general.log 中所示,仅使用mysqli->query("...")
- 会导致实际查询末尾的尾随逗号。有多少字段,就有多少额外的逗号。
使用该mysqli->prepare
方法会导致实际的准备语句出现在日志中!
我在下面包含我的代码以及我在日志中看到的内容..
全局 $mysqli 对象首先在包含文件中创建 - 这肯定有效,因为 select 语句工作正常......
非常感谢任何帮助。
代码:-
function addplaces($placeID,$placename,$easting,$northing,$latitude,$longitude,$parish,$inuse,$shire)
{
global $mysqli;
$mysqli->query("INSERT INTO `places` (`placeID`,`placename`,`easting`,`northing`,`latitude`,`longitude`,`parish`,`inuse`,`shire`) VALUES ($placeID,$placename,$easting,$northing,$latitude,$longitude,$parish,$inuse,$shire)");
}
日志输出:-
9594 查询 INSERT INTO
places
(placeID
,placename
,easting
,northing
,latitude
,longitude
,parish
,inuse
,shire
) 值 ("12672","Accrington","375500","428500","53.752300262451","-2.3730099201202","Accrington","1",Lancashire ,,,,,,,,) 9594 退出
代码:-
function addplaces($placeID,$placename,$easting,$northing,$latitude,$longitude,$parish,$inuse,$shire)
{
global $mysqli;
$stmt = $mysqli->prepare("INSERT INTO places (placeID,placename,easting,northing,latitude,longitude,parish,inuse,shire) VALUES (?,?,?,?,?,?,?,?,?)") or die ("Could not Prepare Statement");
$stmt->bind_param('sssssssss', $placeID,$placename,$easting,$northing,$latitude,$longitude,$parish,$inuse,$shire );
$stmt->execute();
}
日志输出:-
9595 准备 INSERT INTO 地点(placeID、地名、东、北、纬度、经度、教区、inuse、郡) VALUES (?,?,?,?,?,?,?,?,?) 9595 关闭 stmt 9595 退出
我试过用单引号和双引号将值字段括起来,但仍然得到相同的结果......
另外,由于这是我的第一篇文章,我不确定我是否掌握了这个编辑器的窍门,所以如果我错了,请原谅我。