我Entity在Symfony2中有这个:
<?php
namespace Project\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Users
*
* @ORM\Table(name="users")
* @ORM\Entity
*/
class Users
{
/**
* @var integer
*
* @ORM\Column(name="user_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $userId;
/**
* @var integer
*
* @ORM\Column(name="test", type="integer", nullable=false)
*/
private $test;
}
Run Code Online (Sandbox Code Playgroud)
我在{{userId}}和{{test}}之间添加以下行:
/**
* @var integer
*
* @ORM\Column(name="superbanana", type="integer", nullable=false)
*/
private $superbanana;
Run Code Online (Sandbox Code Playgroud)
然后我在控制台中执行:
php app/console doctrine:schema:update --dump-sql
Run Code Online (Sandbox Code Playgroud)
它给了我答复:
ALTER TABLE users ADD superbanana INT NOT NULL
Run Code Online (Sandbox Code Playgroud)
**我该怎么办呢?**
ALTER …Run Code Online (Sandbox Code Playgroud) 在python中导致异常之后重复某些事情的最优雅方法是什么?
我有这样的东西[伪代码作为例子]:
try:
do_some_database_stuff()
except DatabaseTimeoutException:
reconnect_to_database()
do_some_database_stuff() # just do it again
Run Code Online (Sandbox Code Playgroud)
但想象一下,如果我没有一个很好的功能,而是很多代码.重复的代码不是很好.
所以我认为这稍微好一些:
while True:
try:
do_some_database_stuff()
break
except DatabaseTimeoutException:
reconnect_to_database()
Run Code Online (Sandbox Code Playgroud)
如果异常确实解决了问题,那就足够了.如果不是,我需要一个计数器来防止无限循环:
i = 0
while i < 5:
try:
do_some_database_stuff()
break
except DatabaseTimeoutException:
reconnect_to_database()
i += 1
Run Code Online (Sandbox Code Playgroud)
但后来我真的不知道它是否有效,所以它也是:
while i <= 5:
try:
do_some_database_stuff()
break
except DatabaseTimeoutException:
if i != 5:
reconnect_to_database()
else:
raise DatabaseTimeoutException
i += 1
Run Code Online (Sandbox Code Playgroud)
你可以看到它开始变得非常混乱.
表达这种逻辑的最优雅方式是什么?
Doctrine 将本地的、驱动程序特定的数据库连接资源句柄封装在其 Connection 类中。我说的是从,例如,返回的资源mysqli_connect()。我看不到任何访问原始连接资源的方法 - 我找不到任何 getter 方法。这种强封装可能暗示我不应该尝试访问和使用它,但当然,这正是我想要做的。
如果我要从同一连接发出只读选择查询,会不会引起任何问题?我不确定学说的工作流程是如何在幕后运作的。数据库连接是有状态的,我有点害怕在学说有一些多步骤事务部分正在进行时我可能会跳入并发出 sql 查询,这显然会导致问题。但是由于 php 的单线程特性,我认为它在实践中很有可能是不可能的,这取决于学说的工作方式。
旁白:我想这样做的原因是为了性能。我还有一些不是用学说编写的代码,它需要原始数据库连接,因为它使用本机 db 扩展函数。我可以只打开另一个 db 连接,但打开第二个连接在我的场景中具有显着的性能影响......这使得尝试重用学说连接非常有吸引力。
我使用以下代码:
use Doctrine\ORM\Query\ResultSetMapping;
...
...
...
...
$em = $this->get( 'doctrine.orm.entity_manager' );
$rsm = new ResultSetMapping();
$query = $em->createNativeQuery( 'CALL procedureName(:param1, :param2)', $rsm )
->setParameters( array(
'param1' => 'foo',
'param2' => 'bar'
) );
$result = $query->getResult();
//$result = $query->execute(); // Also tried
$em->flush();
die(var_dump($result));
Run Code Online (Sandbox Code Playgroud)
我在$ result参数中没有得到任何东西.谁能告诉我如何从Symfony 2.0.15中的存储过程中获取结果?
我们计划为Go Projects设置Jenkin Build流程.我在jenkins中设置了Custom Workspace,并从"Global Tool Configuration"安装了go1.6.
执行时我收到错误消息go build
下面是GOPATH和GOROOT
GOPATH /var/lib/jenkins/workspace/project/go
GOROOT /var/lib/jenkins/workspace
Run Code Online (Sandbox Code Playgroud)
ain.go:20:2: cannot find package "bytes" in any of:
/var/lib/jenkins/workspace/src/pkg/bytes (from $GOROOT)
/var/lib/jenkins/workspace/project/go/src/bytes (from $GOPATH)
Run Code Online (Sandbox Code Playgroud)
我在这里缺少什么?...感谢您的帮助..
当Cloudwatch中触发警报时,我正在尝试使用Lambda解析数据。我目前正在使用SNS触发lambda;但是,我想知道什么数据正在发送到该Lambda,以便我可以正确解析它。
如何读取SNS传递给Lambda的JSON警报数据?
python amazon-web-services amazon-sns amazon-cloudwatch aws-lambda
我有工作代码,它返回s3存储桶下的所有文件.我必须得到今天上传的文件以便进一步处理.
获取文件的代码:
use Aws\S3\S3Client;
$s3Client = S3Client::factory(array(
'region' => 'us-east-1',
'version' => '2006-03-01',
'credentials' => array(
'key' => 'XXXX',
'secret' => 'YYYYYYYY'
)
));
$iterator = $s3Client->getIterator('ListObjects', array(
'Bucket' => 'mybucket',
'Prefix' => 'adityamusic',
'Suffix' => '.xlsx',
), array(
'limit' => 999,
'page_size' => 100
));
foreach ($iterator as $object) {
print_r($object['LastModified']);
print_r($object['LastModified']['date']); //this gives error
}
Run Code Online (Sandbox Code Playgroud)
print_r($object['LastModified']) 输出为:
Array
(
[Key] => mymusic/
[LastModified] => Aws\Api\DateTimeResult Object
(
[date] => 2016-08-03 06:20:31
[timezone_type] => 2
[timezone] => Z
) …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Web应用程序,其中用户从PHP获取数据,并且数据由MySQL行组成,因此我想将已使用的数据保存在全局变量中,类似于缓冲区,以防止额外的AJAX请求.
我现在正在这样做:
window.ray = []; // global variable
$(function(){
data = getDataWithAjax(idToSearch);
window.ray[data.id] = data.text;
});
Run Code Online (Sandbox Code Playgroud)
但是当id很大时,现在就说10,window.ray变成这样:
,,,,,,,,42
Run Code Online (Sandbox Code Playgroud)
所以它包含9个不必要的点.或者是吗?它只在我做的时候可见console.log(window.ray);
如果这是低效的,我想找到像PHP这样的方式,我只能分配我想要的索引,如:
$array['420'] = "abc";
$array['999'] = "xyz";
Run Code Online (Sandbox Code Playgroud)
我目前的方式与PHP一样高效,还是实际上包含不必要的内存点?
谢谢你的帮助 !
这是在函数"myList中" ProduitRepository:
public function myList($id)
{
$qb = $this->createQueryBuilder('p');
$qb->where('p.id > 10');
return $qb->getQuery()
->getResult();
}
Run Code Online (Sandbox Code Playgroud)
这是ProduitType.php中的builderForm:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nom', 'text', array('required' => true))
->add('description', 'textarea', array('required' => false))
->add('prix', 'money', array('required' => true))
->add('publication', 'checkbox', array('required' => false))
->add('image', new ImageType() )
->add('sousCategorie', 'entity',array(
'class' => 'StoreCategorieBundle:SousCategorie',
'property' => 'nom',
'multiple' => false,
'expanded' => false ))
->add('produit', 'entity', array(
'class' => 'StoreProduitBundle:Produit',
'property' => 'nom',
'query_builder' => function(\Store\ProduitBundle\Entity\ProduitRepository $er) …Run Code Online (Sandbox Code Playgroud) php ×5
doctrine-orm ×4
mysql ×3
symfony ×3
python ×2
amazon-s3 ×1
amazon-sns ×1
arrays ×1
aws-lambda ×1
go ×1
javascript ×1
jenkins ×1
performance ×1
python-2.7 ×1