【发布时间】:2015-07-11 22:12:51
【问题描述】:
我有一个 PHP 脚本,我可以在其中注册新闻用户。 当然,我想插入用户名、密码等内容(这些值来自用户),但另一方面我想将他的 user_id(新用户!)插入另一个表。
我的 SQL
$sql = "
BEGIN;
INSERT INTO users (username, password, auth_lvl, realname, usercolor) VALUES ('$username', '$password', '$auth_lvl', '$realname', '$usercolor');
INSERT INTO users_startmodules (user_id, startmodule, enabled) VALUES ('(SELECT MAX(user_id)+1 FROM users)', 'newsmodule', '1');
COMMIT;
";
如果只有一件事不起作用,我想取消查询时,我该如何解决这个问题,BEGIN; ... COMIT; 是正确的选择,因为在最坏的情况下我不想只有几个条目.
【问题讨论】:
-
无论您做什么,将用户提供的数据直接插入您的数据库都不是最好的主意。我建议将 MySQLi 或 PDO 与准备好的语句一起使用。我自己对 MySQLi 并不熟悉,但对于 PDO,使用
beginTransaction()/endTransaction()