如何在使用PHP和MySQLi连接后更改SQL_MODE和FOREIGN_KEY_CHECKS?

时间:2013-08-28 17:35:05

标签: php mysql mysqli

我正在使用PHP和OO MySQLi。连接已经打开但现在我需要禁用FOREIGN_KEY_CHECKS并设置SQL_MODE。然后我需要在一系列脚本之后重新编写FOREIGN_KEY_CHECKS。

如果我在MySQL中完成所有操作,它将如下所示:

INSERT INTO my_table VALUES ('foreign', 'key', 'violation'); -- prevented

SET SESSION sql_mode='NO_AUTO_VALUE_ON_ZERO';
SET foreign_key_checks = 0;
INSERT INTO my_table VALUES ('foreign', 'key', 'violation'); -- allowed
SET foreign_key_checks = 1;

INSERT INTO my_table VALUES ('foreign', 'key', 'violation'); -- prevented

1 个答案:

答案 0 :(得分:1)

使用mysqli_query()分别运行每个语句。

sql_mode和foreign_key_checks设置是基于会话的,因此它们会一直有效,直到您将其更改为止,或者结束会话。