mysql_query是否会提交所有内容
我正在使用PHP中的MySQL扩展名,我知道它是php 5.5.0的弃用,但是我已经准备好使用此扩展程序编写了很多代码. 在我看来,就像MySQL_Query提交查询一样,如果是这样,则意味着它设置为自动化,如何设置,以免自动加入. 解决方案 旧的MySQL扩展名没有专门用于事务控制的功能,但是您可以发出SQL语句来完成您想要的工作. 您只需开始交易即 mysql_query("START TRANSACTION"); 一旦您提交或回滚,自动加入模式将返回默认值. mysql_query("COMMIT"); // or ROLLBACK 您可以通过设置会话变量来关闭整个会话的自动参数: mysql_query("SET autocommit=0"); 或在您的MySQL实例上全局更改它,因此它更改了所有会话的默认值: mysql_query("SET GLOBAL autocommit=0"); 或将其设置为通过编辑/etc/my.cn
0 2023-06-01
编程技术问答社区
如果提交失败,是否有必要回滚?
这似乎是一个足够简单的问题,但是我找不到任何针对MySQL的确定答案.看看这个: $mysqli->autocommit(false); //Start the transaction $success = true; /* do a bunch of inserts here, which will be rolled back and set $success to false if they fail */ if ($success) { if ($mysqli->commit()) { /* display success message, possibly redirect to another page */ } else { /* display error message */ $mysqli->rollback(); //
0 2023-05-30
编程技术问答社区
PDO多重查询:提交和回滚事务
我需要发射2个查询.目前我这样做: // Begin Transaction $this->db->beginTransaction(); // Fire Queries if($query_one->execute()){ if($query_two->execute()){ // Commit only when both queries executed successfully $this->db->commit(); }else{ $this->db->rollback(); } }else{ $this->db->rollback(); } 这是正确的方法吗?我不使用任何尝试.在我的代码中捕捉会使我的代码在任何情况下都不适合或易受伤害吗? 解决方案 是的,您的方法是正确的.在某些情况下,使用Try...catch可能会导致更清洁,更可读的代码,但是您的整体方法很好. 如果
0 2023-05-29
编程技术问答社区
MySQL的提交和交易
我有一个关于MySQL进行和交易的问题.我有几个PHP语句执行MySQL查询.我只是说以下内容吗? mysql_query("START TRANSACTION"); //more queries here mysql_query("COMMIT"); 这到底会做什么?它有什么帮助?对于更新,删除和插入,我还发现这是为了阻止其他查询: mysql_query("LOCK TABLES t1 WRITE, t2 WRITE"); //more queries here mysql_query("UNLOCK TABLES t1, t2"); 这个封锁其他疑问,无论大自然还是只写/selects? 另一个问题:说一个查询正在运行并阻止其他查询.另一个查询试图访问阻止的数据 - 并发现它已被阻止.如何进行?它是否等到数据再次被阻止并重新执行查询?它只是失败并需要重复吗?如果是这样,我该如何检查? 非常感谢! 丹尼斯 解决方案 在Innodb中,如果
4 2023-05-28
编程技术问答社区
PHP & mySQL。实现事务提交和回滚的简单代码
我的平台: php&mysql 我的情况: 我正在尝试在我的代码中实施交易.我试图遵循示例,但这没什么帮助.我正在运行3个查询,我想以某种方式编写交易,以便如果任何查询(ies)失败,则整个交易应该回滚.我真的很感谢一个简单,高效且非对象的PHP代码实现此目标.预先感谢您. 我的php代码: //db_res calls a custom function that performs a mysql_query on the query $res1 = db_res("SELECT c1, c2 FROM t1 WHERE c5 = 3"); $res2 = db_res("UPDATE t2 SET c1 = 5 WHERE c2 = 10"); $res3 = db_res("DELETE FROM t3 WHERE c1 = 20"); if( $res1 && $res2 && $res3 ) { //commit --- but how? }
0 2023-05-27
编程技术问答社区
在Perforce上提交后,脚本可以自动化吗?
我们在工作中使用Perforce,并通常将软件项目保存在存储库中.总的来说,创建者遵循正常的表现流,但是我们也有一类用户,他们不需要编辑文件,但只能读取文件.目前,我们使用P4Web,但这需要用户,因此请单独下载每个文件以重新组装项目目录.理想情况下,我想进行一个过程,当用户在perfce中进行提交/提交时,脚本会自动运行以生成项目目录和文件的单个zip文件,以便它是一个单击的下载,可以保证在源文件的当前状态下正确.我知道git有一个可以用于此的固定挂钩,但我无法弄清楚在perforce中的等效功能. 解决方案 简短答案:是的,请阅读文档,第103页. 这是一个长答案,您可以通过命令行键入p4 triggers来编辑触发器.您提供触发器的名称(即" my_archive"),触发器的类型(即在您的情况下进行更改commit),路径(即//depot/path/path/to/to/the/directory/the the the/the/the/the/the/the/t
0 2023-05-23
编程技术问答社区
如何在PHP中实现MySQL的提交/回滚?
基本上,我有这个脚本需要很长时间才能执行并偶尔会淘汰,并将半完整的数据浮在我的数据库周围. (是的,我知道在一个完美的世界中,我会解决这个问题,而不是实施承诺和回滚,但我被迫不这样做) 这是我的基本代码(为简单起见): $database = new PDO("mysql:host=host;dbname=mysql_db","username","password"); while (notDone()) { $add_row = $database->prepare("INSERT INTO table (columns) VALUES (?)"); $add_row->execute(array('values')); //PROCESSING STUFF THAT TAKES A LONG TIME GOES HERE } $database = null; 所以我的问题是,如果循环中的整个过程中的整个过程尚未完成,那么我不希望将行插
0 2023-05-22
编程技术问答社区
如何应用`git-log -p <filename>`创建的补丁文件来创建包含的所有提交?
背景:这个问题. git apply 只是重新创建文件,但没有犯下历史记录,在这种情况下,这是可取的.是否有git-apply的开关?还是有办法将PatchFile转换为兼容文件git-am? (目前,git-am抱怨"补丁格式检测失败") 解决方案 您问,所以这里是. 我使用了这个脚本,但这一切都很脆弱.将其视为灵感,而不是合理的解决方案. 它从git log -p的输出中提取(日期/作者/提交消息/补丁),然后以反顺序运行patch+git add+git apply. 可能有某种方式可以自动找出正确的patch_level,但我没有打扰.并将作者传递给git apply如果不是全部. #!/usr/bin/env ruby class String def shell_escape if empty? "''" elsif %r{\A[0-9A-Za-z+,./:=@_-]+\z} =~ sel
0 2023-05-21
编程技术问答社区
如何应用一个git补丁,就像作者提交到我的 repo一样?
假设有一个中央存储库,从卫星开始推动一段时间.开发人员A也会对他的回购进行一些承诺,而B也自己做一些. 现在,A想要将B的一项承诺纳入他的仓库(他无法直接访问以拉动). 一种方法是让B创建一个补丁并将其发送到A,但是在这种情况下有两个问题: 1.该补丁将以局部修改为A,然后将其提交(带有其名称) 2.一旦更新了中央回购,更改将发生冲突(两位不同的作者推动). 是否有一种方法可以将补丁直接应用于本地存储库上,以便在他身上看起来好像是从中央储物中提取的(即origin)? ? ps :(这可能不适用:请参阅评论:有没有办法进行文本直到验证?致力于当地的主人(然后,我希望当B将其推向中央储物库时,它将被认为是同一承诺).看起来是git应用的,使补丁没有签约... 解决方案 b可以创建并发送其他解决方案 git am是您要寻找的. 要求他在本地犯下并做git format-patch.这将创建一个补丁.然后,您可以使用git am将其添加到您的回购中.
0 2023-05-21
编程技术问答社区
如何在选择性暂存期间编辑Git "添加补丁 "hunks/diffs/lines?
我有一个源文件,其中添加了2个功能.为了允许樱桃挑选,我想在两个阶段中提出这一点:每个功能一个.到目前为止,在类似情况下,使用git add -p对我来说很好,在将本地文件留在最后阶段时提交一项功能. 但是,我现在遇到了一个问题,即git add -p想要上演一个包括这两个功能的编辑的大块.即使编辑在单独的行上,s(对于"拆分")也不再想将大块拆分成较小的碎片... 简而言之:我无法通过这种方式将2个功能的更改分开.有没有办法手动编辑补丁程序,例如使用VI,而无需实际更改原始文件? 解决方案 正如Alan所说,在git add -p期间按下e(而不是s)编辑补丁程序.这将使用该补丁的大块启动您的编辑器,以便您可以手动编辑它.文本中有一些评论可以解释如何正确丢弃修改,并且实际上很容易. 完成后,请注意,只有通过执行git stash --keep-index添加的更改就可以对其进行测试.您未添加到索引的更改将被藏起来,现在您可以免费测试即将提交的更改.完成后,只需
6 2023-05-21
编程技术问答社区
Git: 如何找到一个与目录最匹配的提交?
有人在Moodle中使用了一个版本(对我来说是未知的),在目录中应用了许多更改,并发布了它(在这里). 我如何确定原始项目的哪个提交最有可能编辑以形成这棵树? 这将使我能够在适当的提交中形成一个分支.它肯定来自 1.8> 1.8 或//github.com/moodle/moodle/tree/moodle_19_stable/mod/assignment" rel =" noreferrer"> 1.9 分支,可能是从释放标签中分支,但是在特定的consits之间差异并不对我有很大帮助. postmortem更新: knittl的答案让我尽我所能.我首先将补丁回购添加为远程"外国"(没有共同的提交,没关系),然后在循环中使用几个格式选项进行了差异.第一个使用--shortstat格式: for REV in $(git rev-list v1.9.0^..v1.9.5); do git diff --shortstat "$REV" f7f7ad53c88
2 2023-05-21
编程技术问答社区
如何在git中把某些提交转移到另一个分支上?
情况: 主人在x quickfix1在x + 2 consits 这样: o-o-X (master HEAD) \ q1a--q1b (quickfix1 HEAD) 然后我开始使用QuickFix2,但是偶然地将QuickFix1作为复制的源分支,而不是主体.现在quickfix2在x + 2 consits + 2相关提交. o-o-X (master HEAD) \ q1a--q1b (quickfix1 HEAD) \ q2a--q2b (quickfix2 HEAD) 现在我想拥有一个带有QuickFix2的分支,但是没有属于QuickFix1的2个投入. q2a'--q2b' (quickfix2 HEAD) / o-o-X (master HEAD) \ q1a--q1b (quickf
0 2023-05-21
编程技术问答社区
Django事务请求失败,但仍有部分提交
当我提交表格时,我必须将两个对象保存到数据库中;但是,如果第一和第二保存之间存在故障,我仍然在数据库中看到第一个对象. 因为我已经在主要设置中启用了TransactionMiddleware,所以我想要(并期望)请求未能返回由于此请求而进行的任何数据库更新. 我的代码如下: def submit(request): form1 = Form1(request.POST) form2 = Form2(request.POST) obj1 = form1.save() # simulate an error raise Exception('spam', 'eggs') obj2 = form2.save(commit=False) obj2.obj1 = obj1 form2.save() 随后查询数据库时,存在OBJ1.由于失败而导致的obj1交易,我该如何让它回滚? (我还尝试将Deco
0 2023-05-20
编程技术问答社区
将上游的修改合并到我的分支中的问题
我在试图合并上游的过程中遇到冲突,我不确定如何解决它们. 我创建了自己的叉子.我克隆了它.我对叉子上的分支进行了更改,投入并推了.但是随后更新了主要叉子,我尝试通过合并上游来更新自己的叉子: $ cd repo-name $ git remote add upstream git://github.com/username/repo-name.git $ git fetch upstream $ git merge upstream/master 合并说文件和自动合并无效的问题.它告诉我自己修复并重新合并.因此,我实际上是在主叉的github上的(上游)存储库,然后将新文件的所有代码复制到我的叉子上的文件中,然后尝试再次合并.然后,git给我这个错误: 致命:"合并"是不可能的. 请在工作树上修复它们,然后使用'git add/rm'作为 适合标记解决方案并进行提交,或使用" git commit -a'. 我是否有一些论点?我在做愚蠢的事情吗? "未经合并的
0 2023-05-20
编程技术问答社区
Pandas DataFrame.to_sql()函数是否需要随后提交()?
PANDAS函数的文档to_sql()可用于DataFrame对象(请参阅 to_sql()文档)不指出需要(或建议)对连接进行commit()持续更新. 我可以安全地假设DataFrame.to_sql('table_name', con)总是会自动提交更改(例如:con.commit())? 解决方案 是的,归根结底,它将自动投入. pandas call sqlalchemy call sqlalchemy方法executemany/a>(用于SQL炼金术连接): conn.executemany(self.insert_statement(), data_list) 用于sqlite Connection : def run_transaction(self): cur = self.con.cursor() try: yield cur self.con.commit() except:
6 2023-05-17
编程技术问答社区
在Entity Framework中不能用AddRange自动生成IDENTITY
我不知道它是代表我的实体框架的荒原选择还是错误的方法,但是每当我尝试将实体添加到dbset中时,我似乎都无法获得自动生成的身份字段. [Table("entities")] public class Entity { [Key] [Column("id")] public long Id { get; set; } [Column("field")] public string Field { get; set; } } var entities = new Entity[] { new Entity() { Field = "A" }, new Entity() { Field = "B" }, }; _dbContext.Entities.AddRange(entities); await _dbContext.SaveChangesAsync(); //ids are still default(long)
0 2023-05-14
编程技术问答社区
Oracle提交杀戮
我得到了一个Oracle DB 10G,这里有一个表作为示例 create table Dienstplan ( Montag Number(2), Dienstag Number(2), Mittwoch Number (2), Donnerstag Number (2), Freitag Number (2), Samstag Number (2), Sonntag Number (2), gueltigAb DATE default SYSDATE NOT NULL, PersonalNr Number(10) references Mitarbeiter(PersonalNr) INITIALLY DEFERRED DEFERRABLE, PRIMARY KEY (PersonalNr, gueltigAb), check (Montag
6 2023-05-14
编程技术问答社区
选择后提交
我已经阅读了commit在db2和mysql select语句之后的commit时: 是在选择中所需的提交db2? 我应该在单个选择后提交 我的问题是在执行Oracle select语句之后何时以及为什么很重要? 解决方案 如果您做了SELECT ... FOR UPDATE;,则需要提交或回滚才能发布持有的记录以进行更新.否则,我想不出任何理由. 其他解决方案 只有几种情况我可以想到,您可能想在选择后提交. 如果您的选择正在加入数据库链接,则将创建事务.如果您尝试关闭此链接,除非您承诺/退回交易,否则您将获得错误. 选择更新(如Dcookie所说)以释放锁. 如果您在调用此之前,请从DB链接中选择一个序列化隔离级别或添加一个.
4 2023-05-13
编程技术问答社区
能否在触发器内动态地创建一个JOB?
此触发器的执行失败(它进行了编译,但一旦我执行指定的插入 - >错误) create or replace TRIGGER AFT_INSERT_TMP_TBL AFTER INSERT ON TMP_TBL REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW DECLARE V_SQL VARCHAR2(1000); A_NAME VARCHAR2(100); BEGIN A_NAME:='ANY_NAME'; V_SQL:='BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => '''||A_NAME||''', job_type => ''PLSQL_BLOCK'', job_action => ''BEGIN DBMS_
4 2023-05-13
编程技术问答社区
oracle-哪些语句需要被提交?
为了避免锁定,在对表进行进一步措施之前,需要提交的语句列表?我不是在谈论具有多个语句和交易完整性的完整交易;相反,我指的是单个语句. 我知道应该插入插入,但截断具有自动功能.需要提交的语句的完整列表是什么? 需要提交(入门列表): UPDATE INSERT DELETE 解决方案 dml(数据操纵语言)命令需要后退. 在这里是这些命令的列表. 数据操纵语言(DML)语句用于管理数据 在模式对象中.一些例子: INSERT - insert data into a table UPDATE - updates existing data within a table DELETE - deletes records from a table, the space for the records remain MERGE - UPSERT operation (insert or update) CALL - call a PL/SQL or Java
2 2023-05-13
编程技术问答社区