我想从多个表中删除.这是我的表格的样子
A_has_B ---- B ---- C_has_B
(many to many) (many to many)
Run Code Online (Sandbox Code Playgroud)
我正在尝试删除A_has_B,B和C_has_B中的所有行,给定B中记录的ID.我使用带有innodb存储引擎的MySQL,其中为A_has_B定义了外键,而C_has_B引用了B中的ID.
我试图像这样执行删除:
DELETE A_has_B.*, C_has_B.*, B.*
FROM
A
join
B
on (B.B_id = A.B_id)
join
C
on (C.B_id = B.B_id)
where B.B_id IN(1,2, 4);
Run Code Online (Sandbox Code Playgroud)
问题是,当我执行查询时,mysql抱怨:
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`db`.`C`, CONSTRAINT `fk_C` FOREIGN KEY (`B_id`) REFERENCES `B` (`B_id`) ON DELETE NO ACTION ON UPDATE NO)
Run Code Online (Sandbox Code Playgroud)
我该怎么办呢?
我有一些像这样的标记:
<div class="account-picture">
<img src="http://i.imgur.com/Mcr3l.png">
</div>
Run Code Online (Sandbox Code Playgroud)
将div要向左浮动的需求.图像为128px x 128px.
还有一些css:
.account-picture{
float: left;
background: #FFFFFF;
padding: 10px;
border: 1px solid red;
font-size: 1px;
overflow: hidden;
}
img{
border: 1px solid #F8F8F8;
overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
但问题是似乎有一些额外的高度分配给div.萤火虫的布局图如下:

为什么div的高度增加2个像素?为什么浏览器会有所不同?
这是一个小提琴:http://jsfiddle.net/mWe5Y/
为什么会发生这种情况,如何摆脱额外的"高度"?
我正在构建一个涉及表单的Web应用程序.正在使用的框架是symfony2.我想让一切为没有javascript的用户工作,然后逐步增强启用javascript的人的体验.我打算用JQuery作为我的javascript库.
如果用户没有javascript并且请求不是ajax请求,我希望有提交的表单并使用FlashMessage组件显示消息.
对于具有javascript支持的用户,如果提交成功,我想将消息返回给他们.然后,javascript应立即在div中显示该消息.
与此同时,我需要处理错误消息.对于没有javascript的用户,整个表单将被重新呈现,并显示错误消息.
对于使用javascript的用户,ajax响应应该是一个包含输入组件的id和错误消息的数组.然后Javascript应该在没有刷新的情况下将这些插入到表单中.
查看symfony2书籍,我可以看到以下提交内容,然后我修改它以检查请求是否是ajax请求:
public function newAction(Request $request)
{
// just setup a fresh $task object (remove the dummy data)
$task = new Task();
$form = $this->createFormBuilder($task)
->add('task', 'text')
->add('dueDate', 'date')
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
if ($form->isValid()) {
// perform some action, such as saving the task to the database
if ($this->request->isXmlHttpRequest(){
//return data ajax requires.
}
return $this->redirect($this->generateUrl('task_success'));
}
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
我发现这种方法的问题是不是很优雅.我需要在每个表单上添加额外的检查.此外,如果请求通过Zend_AMF进入,则此方法不起作用.
有没有更好的方法来做到这一点?
我正在使用groovy(gremlin准确地遍历图形数据库).不幸的是,因为我使用的是gremlin,所以我无法导入新的类.
我有一些日期值,我希望转换为Unix时间戳.它们以以下格式存储为UTC:2012-11-13 14:00:00:000
我正在使用这个片段解析它(在groovy中):
def newdate = new Date().parse("yyyy-M-d H:m:s:S", '2012-11-13 14:00:00:000')
Run Code Online (Sandbox Code Playgroud)
问题是它进行了时区转换,结果是:
Tue Nov 13 14:00:00 EST 2012
Run Code Online (Sandbox Code Playgroud)
如果我然后将其转换为使用时间戳time(),转换为UTC,则生成时间戳.
如何new Date()在首次解析日期时进行任何时区转换(并假设日期为UTC)?
我有一个带有2个分支的git项目:
在master中,我有一个composer.json使用特定版本的要求:
"require" : {
"triagens/arangodb" : "1.2.1",
"php" : ">=5.4.0"
},
Run Code Online (Sandbox Code Playgroud)
在我的devel分支中,我想使用依赖项的开发版本:
"require" : {
"triagens/arangodb" : "dev-devel",
"php" : ">=5.4.0"
},
Run Code Online (Sandbox Code Playgroud)
实际上,当切换和/ composer install或composer update运行分支时,我希望让作曲家更新/更改相应版本的依赖关系.
由于composer install --dev不支持具有不同版本的依赖项require-dev,我无法在该require-dev部分中设置不同的版本.
我也不希望composer.json每个分支都没有单独的,因为合并会非常痛苦.
如果您有多个分支,并且每个分支使用某种版本的依赖项,那么最好的方法是什么?
我正在构建一个RESTful API.当客户端在不支持它的资源上使用不受支持的方法(如POST)时,我将返回一个405带有Allow列出允许方法的标头:
Status Code: 405 Method Not Allowed
Allow: GET, HEAD, OPTIONS
Connection: keep-alive
Date: Mon, 08 Apr 2013 00:19:26 GMT
Transfer-Encoding: chunked
Run Code Online (Sandbox Code Playgroud)
是否允许有405响应的正文(提供错误消息)?
从w3c的网站来看,不清楚是否允许一个机构405做出回应.
无论如何(或模式)是否强制调用父方法?
我有一个像这样的抽象类:
abstract class APrimitive{
public function validate(){
//Do some stuff that applies all classes that extend APrimitive
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一些扩展到APrimitive"base"的类:
class CSophisticated extends APrimitive{
public function validate(){
//First call the parent version:
parent::validate();
//Then do something more sophisticated here.
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,如果我们在几个月后回到代码中,并使用方法创建一些类似CSophisticated的类validate(),那么我们可能会忘记parent::validate()在该方法中调用它.
请注意,某些CS复杂类可能没有该validate()方法,因此将调用父版本.
我知道可以在某个地方发表评论,提醒程序员打电话parent::validate(),但是有更好的方法吗?如果parent::validate()在validate()方法中没有进行调用,则可能是一种自动抛出异常的方法.
我使用CSS来设置使用JavaScript创建的滚动条.
.scrollbar-track{
background: black;
height: 10px;
}
.scrollbar-thumb{
cursor: default;
border: 1px red solid;
width: 50px;
padding: 0;
}
.scrollbar-thumb-first{
display: inline-block;
background: green;
width: 5px;
height: 10px;
}
.scrollbar-thumb-middle{
display: inline-block;
background: red;
height: 10px;
width: 20px;
}
.scrollbar-thumb-last{
display: inline-block;
background: blue;
width: 5px;
height: 10px;
}Run Code Online (Sandbox Code Playgroud)
<div class="scrollbar">
<div class="scrollbar-track" style="width: 970px;">
<div class="scrollbar-thumb">
<span class="scrollbar-thumb-first"></span>
<span class="scrollbar-thumb-middle"></span>
<span class="scrollbar-thumb-last"></span>
</div>
</div>
</div>Run Code Online (Sandbox Code Playgroud)
这是小提琴:http://jsfiddle.net/w27wM/8/
为什么内部div比父div更大?即使边距和填充设置为0,问题仍然存在.
我有一个使用spl_autoload_register()以下注册的自动加载器:
class MyAutoLoader{
public function __construct(){
spl_autoload_register(array($this, 'loader'));
}
public function loader($className){
var_dump($className);
}
}
$al = new MyAutoLoader(); //Register the autoloader
Run Code Online (Sandbox Code Playgroud)
从var_dump(),自动加载器似乎被调用很多东西,数据要插入到数据库中,参数化的SQL查询以及不是:
string 'name' (length=4)
string 'a:2:{s:5:"label";s:4:"Name";s:8:"required";b:1;}' (length=48)
string 'en_US' (length=5)
string 'object' (length=6)
string 'name = ?' (length=8)
Run Code Online (Sandbox Code Playgroud)
这些东西永远不会是类,所以永远不应该使用new或class_exists()等等.
在什么情况下/函数调用是自动加载器调用?我想停止自动加载不是被调用类的"classNames",因为每个$className都被使用检查file_exist(),并且检查这些数据字符串是非常低效的.
问题解决了.我首先按照Brad的建议进行了回溯,并将跟踪转储到文件中(只需添加一个打开文件并附加到其上的小片段).
显然,痕迹非常大,但我选择了我能找到的最简单的一条.顺便说一下,这个跟踪碰巧是一个调用我编写的数据库(ORM)包装器来包装真棒RedBean ORM库的.我转储的结果$className也验证了,因为这些字符串是数据进出数据库.
话虽如此,我有一个__call()拦截我的数据库包装器的方法,做一些处理,将它传递给RedBean,处理结果,然后将其发送回调用者.
问题:在处理过程中,我正在调用is_subclass_of()和instanceof,这显然会要求自动加载器尝试加载类(因为我们没有任何名为name =?loaded的类,也不存在).
解决方案是实际确保我们有一个object之前的呼叫is_subclass_of()和instanceof: …
php ×4
css ×2
html ×2
ajax ×1
algorithm ×1
autoloader ×1
composer-php ×1
datetime ×1
foreign-keys ×1
forms ×1
gremlin ×1
groovy ×1
height ×1
httpresponse ×1
identicon ×1
java ×1
mysql ×1
oop ×1
sql ×1
sql-delete ×1
symfony ×1