当使用MySQL START TRANSACTION并由MySQL做出回滚决定时 - 如果一个表有一个AUTO_INCREMENT列 - 在回滚期间列是否会减少?
还是应该呢?
我遇到了一些问题,其中事务数据正在被正确回滚 - 但看起来表是自动递增的并且在回滚中没有减少.
# BOTH TABLES START OUT EMPTY // TABLE1 ID is **auto_increment**
START TRANSACTION;
INSERT INTO `TABLE1` (`ID` ,`NAME`) VALUES (NULL , 'Ted'); # MySQL TABLE1 **ID** is Auto incremented to 1
INSERT INTO `TABLE2` (`ID` ,`WRONGVALUE`) VALUES (NULL , 'some value'); # error. This TRANSACTION will not succeed
COMMIT; # Because of the error - this TRANSACTION is now rolled back and Ted is NOT added
Run Code Online (Sandbox Code Playgroud)
因为MySQL会自动增加第一个表上的ID - 无论事务成功还是失败 …
对转义字符串以及它如何存储在数据库中感到困惑
在我的MySQL调用中,我使用反斜杠转义字符串:
UPDATE `TABLE` SET `PERSONAL_BELONGINGS` = 'Tom\'s things'
Run Code Online (Sandbox Code Playgroud)
但当我查看phpadmin时 - 值保存如下:
|Tom's things|
Run Code Online (Sandbox Code Playgroud)
为什么反斜杠没有保存到数据库中?当我将此值读入javascript然后尝试传递它时,这会导致问题 - 我的javascript字符串将终止.这就是我开始逃避角色的原因.
为什么MySQL在保存到数据库之前删除'\'反斜杠?
如果没有用'\'保存在数据库中 - 那么当你将它作为字符串传递回javascript时,最好的方法是什么呢?当作为字符串传递给javascript时再次转义它?
提前感谢任何试图帮助我的人.
我有一个表单,我将复选框添加到via appendChild()- 作为用户选择的选项 - 基于一系列标准.
当用户选中这些框中的任何一个,然后单击"继续"按钮将选择发布到另一个页面 - 然后单击后退按钮 - 用户检查的复选框 - 现在已被浏览器忘记(不再选中).
如果我使用php编写复选框或只是使用静态复选框 - 当用户选中任何这些框,然后单击"继续"按钮将选择发布到另一个页面 - 然后单击后退按钮 - 将记住所选的复选框(仍然检查)
我的问题是:
为什么浏览器忘记了用appendChild()创建复选框时用户所做的选择
但是相同的浏览器会记住用户在使用静态复选框时所做的选择
有什么关于appendChild()不允许相同的浏览器记住选中的选择?
[div id="mydiv"] here is where the checkboxes are going[div]
[script type="text/javascript"]
var newInput = document.createElement("INPUT");
newInput.id = "mycheckboxid";
newInput.name = "mycheckboxname";
newInput.type = "checkbox";
document.getElementById('mydiv').appendChild(newInput);
[/script]
Run Code Online (Sandbox Code Playgroud) 我想使用事件监听器来防止事件在具有onclick函数的div内的div上冒泡.这工作,传递参数我的意图:
<div onclick="doMouseClick(0, 'Dog', 'Cat');" id="button_id_0"></div>
<div onclick="doMouseClick(1, 'Dog', 'Cat');" id="button_id_1"></div>
<div onclick="doMouseClick(2, 'Dog', 'Cat');" id="button_id_2"></div>
<script>
function doMouseClick(peram1, peram2, peram3){
alert("doMouseClick() called AND peram1 = "+peram1+" AND peram2 = "+peram2+" AND peram3 = "+peram3);
}
</script>
Run Code Online (Sandbox Code Playgroud)
但是,我尝试在循环中创建多个事件侦听器:
<div id="button_id_0"></div>
<div id="button_id_1"></div>
<div id="button_id_2"></div>
<script>
function doMouseClick(peram1, peram2, peram3){
alert("doMouseClick() called AND peram1 = "+peram1+" AND peram2 = "+peram2+" AND peram3 = "+peram3);
}
var names = ['button_id_0', 'button_id_1', 'button_id_2'];
for (var i=0; i<names.length; i++){
document.getElementById(names[i]).addEventListener("click", function(){
doMouseClick(i, "Dog", "Cat"); …Run Code Online (Sandbox Code Playgroud) 我试图将网页的内容打印到一页纸上.但是,它将内容分为两页,所以我在这里做了一些研究,看到人们推荐:
<style type="text/css" media="print">
#my_print_div{
width:940px;
height:770px;
page-break-after: always; /* Always insert page break after this element */
page-break-inside: avoid; /* Please don't break my page content up browser */
}
</style>
<div id='my_print_div'> My content to be printed here</div>
Run Code Online (Sandbox Code Playgroud)
我的div仍然打破然后继续下一页打印 - 除非我选择"Shrink to Fit" - 在Mozilla Firefox中.
有没有办法确保DIV的内容不能在2页上打印?我想将内容强制为1个可打印页面
是否有一个已知的像素宽度高度,以匹配11英寸×8.5英寸Letter尺寸纸张?
谢谢
这个错误是什么意思?
MYSQL - Error: 1031 SQLSTATE: HY000 (ER_ILLEGAL_HA)
我可以在MySQL站点上找到这个错误的百万个引用 - 但是找不到它的定义.
我一直在从生产区域导出数据库 - 并导入到开发测试区域,现在已经超过一年了.并且每次都在导出/导入时使用相同的选择.今天,它在导入期间在INSERT DELAYED INTO命令上报告此错误.
我选择了一个事务,添加DROP TABLE,添加IF NOT EXISTS,添加AUTO_INCREMENT值,完成插入,扩展插入,在我的导出中使用延迟插入.因为我想确保我放在开发数据库中的副本被覆盖并创建开发数据库的精确副本.
我很想知道为什么在一年后它现在报告这个错误 - 并且是一个查看这些错误含义的好地方.
谢谢.
问候.
PHP Mysql CodeIgniter在非常奇怪的情况下将字符转换为符号
()我看一下......一天后......这是我的疯狂透露:
有问题的文字是逐字记录" 始终存档信用卡(我们不收取此客户的提货或退货) "
无论我在代码方面做了什么或改变了什么..我无法阻止PHP ......或者Javascript ......或者MySQL ......或者外星生物......或者无论是谁做到了 - 从转换" () "在文本中" ()".我尝试了很多东西,比如用人或上帝知道的所有方式清理字符串.在保存到数据库之前捕获字符串之前的字符串.转换将始终发生在保存到MySQL之前.我尝试以不同的形式和字段发布...每次都是同样的事情......无法阻止魔术转换为" () .
什么蝙蝠侠的名字在这个神奇的文本中导致这种情况发生?是魔法小精灵灰尘撒在godaddy服务器上运行??? 0_o .......
作为天才我0_0我决定一次从段落中删除一个单词.神奇地......随着森林中的所有生物聚集在一起 - 当我最终到达段落中的" 文件 " 这个词时,将其移除!像魔法一样 - " () "保持为" () "并且不会转换为" ()?!?!???!?!?:\如何?我只是从文本中删除了" 文件 " 这个词. ..这怎么会改变什么?什么是" 文件 " 这个词导致改变字符串的保存或转换方式?
好的 - 所以我在应用程序的任何一个表单字段中对此进行了测试.每一次,在任何字段中,如果您键入单词" file "后跟一个" ( "它将第一个" ( " 转换为 …
在您的选择查询中使用别名时,如下所示:
SELECT u.col1 AS u_col1
, u.col2 AS u_col2
, u.col3 AS u_col3
-- etc
, u2.col1 AS u2_col1
, u2.col2 AS u2_col2
, u2.col3 AS u2_col3
etc.
Run Code Online (Sandbox Code Playgroud)
有没有办法缩短语法量?所以你不必为每个别名说' AS '?
我想也许: SELECT u.col1, u.col2 AS u_col1, u_col2
但那没用.任何人都知道它是否可能?
谢谢大家:)
我有几张桌子正在加入查询.
(宠物)
| id | owner_id | pet_name | size |
--------------------------------------
| 1 | 1 | Sparky | L |
| 2 | 1 | Spot | L |
| 3 | 3 | FooFoo | M |
| 4 | 3 | Barky | L |
| 5 | 3 | Jeb | S |
Run Code Online (Sandbox Code Playgroud)
(所有者)
| id | owner_name |
--------------------
| 1 | Jeff |
| 2 | (Kathy) |
| 3 | Tom |
Run Code Online (Sandbox Code Playgroud)
当我像这样做一个内部联接: …
可能重复:
JavaScript拆分而不会丢失字符
我有一个字符串:
"<foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar>"
Run Code Online (Sandbox Code Playgroud)
我想将"abcdefg"的所有实例分成如下数组:
["<foo>abcdefg</bar>", "<foo>abcdefg</bar>", "<foo>abcdefg</bar>", "<foo>abcdefg</bar>"];
Run Code Online (Sandbox Code Playgroud)
我尝试:
var str="<foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar><foo>abcdefg</bar>";
var Array_Of_FooBars = str.split("</bar>");
alert(Array_Of_FooBars);
Run Code Online (Sandbox Code Playgroud)
但它返回:
["<foo>abcdefg", "<foo>abcdefg", "<foo>abcdefg", "<foo>abcdefg",]
Run Code Online (Sandbox Code Playgroud)
它正在删除分隔符''.我不希望这样.
如何使用拆分而不丢失字符串中的分隔符?
谢谢.肯
mysql ×6
javascript ×3
php ×2
alias ×1
appendchild ×1
arrays ×1
back-button ×1
backslash ×1
codeigniter ×1
css ×1
decrement ×1
escaping ×1
events ×1
html ×1
inner-join ×1
printing ×1
split ×1
sql ×1
transactions ×1