这是使用准备好的语句真正节省你一些麻烦的一个例子。
在MySQL中,为了插入空值,您必须在INSERT时指定它,或者将该字段留下,这需要额外的分支:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', NULL);
但是,如果要在该字段中插入一个值,则现在必须分配代码以添加单引号:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', 'String Value');
准备的语句自动为您做。他们知道string(0)“”和null之间的区别,并适当地写入您的查询:
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);
$field1 = "String Value";
$field2 = null;
$stmt->execute();
它为您转义字段,确保您不要忘记绑定参数。没有理由保留mysql扩展名。使用mysqli而不是prepared statements。你会为自己节省一个痛苦的世界。