是否有可能获得相同名称的多个输入发布,然后从PHP访问它们?这个想法是这样的:我有一个表单,允许输入无限数量的物理地址和其他信息.如果我只是在几个条目中给每个字段指定相同的名称并通过post提交该数据,PHP是否可以访问它?
比方说,例如,我在一个名为"xyz"的页面上有五个输入,我想使用PHP访问它们.我可以这样做:
$_POST['xyz'][0]
Run Code Online (Sandbox Code Playgroud)
如果是这样,那将使我的生活变得容易十倍,因为我可以通过表单发送无限量的信息,并通过循环遍历名为"xyz"的项目数组来由服务器处理.
我遇到了Eclipse格式化程序的问题.在类声明中声明方法时,它不会正确格式化我的代码.它在方法的返回类型后面添加一个新行.
我已经导出了样式xml文件并检查了其中的设置,但是没有任何设置与此问题有任何明显的联系,并且Eclipse中的设置编辑器没有显示其方法声明的示例代码中发生的相同问题.
以下是我想要发生的代码示例:
class MyClass
{
public:
MyClass();
void myMethod();
};
Run Code Online (Sandbox Code Playgroud)
但是,这就是我得到的:
class MyClass
{
public:
MyClass();
void
myMethod();
};
Run Code Online (Sandbox Code Playgroud)
同样,在样式编辑器中,代码没有这个问题,看起来就像我想要的那样,但在实际的代码中,故事是不同的.
我使用的是3.8.0版本.任何帮助表示赞赏.
编辑:我删除那些格式不正确的源文件(格式化代码几次后无效)并用相同的方法,相同的结构等替换它们"相同"的文件.我这次格式化代码,它工作.这可能是一个错误,但是我将其留下以防万一其他人遇到类似的问题或者首先要解决这个问题.
我已经安装了支持php5的Apache2,一切都在那里工作.我已经安装了PostgreSQL,并且能够使用终端连接到它并执行SQL语句.
问题:我的PHP脚本和PostgreSQL数据库之间无法建立连接.我已经安装了从存储库打包的php5-pgsql,但连接不起作用.
我收到以下错误消息:
PHP致命错误:在[X]行的/var/www/[myfile].php中调用未定义的函数pg_connect()
如何在ubuntu 11.04中启用PHP5中对PostgreSQL连接的支持?
编辑:检查phpinfo()并找不到PostgreSQL的条目.我不知道为什么会这样,我DID为ubuntu 11.04安装php5-pgsql包.
这是有效的:我从Ubuntu存储库安装了phppgadmin.这不仅为我提供了一个很好的工具,它还安装了php所需的软件包以连接到postgresql.
在那之后,它全部在连接参数中.在我在pg_connect()中按顺序定义连接主机,端口,数据库,用户和密码之前,它不会连接到本地服务器上的数据库.
我仍然不知道为什么我自己安装php5-pgsql没有启用php的PostgreSQL连接.对此的任何输入都会有所帮助.
在PostgreSQL中,可以RETURNING
在INSERT
语句的末尾放置,例如,当该值由SERIAL
类型自动设置时,返回行的主键值.
问题:
如何将此值存储在可用于将值插入其他表的变量中?
编辑:
请注意,我想将生成的id插入到多个表中.id
据我所知,一个条款只对单个插入有用.我认为这可能必须在PHP中完成.
这实际上是糟糕设计的结果; 如果没有自然键,除非主键上有句柄,否则很难获取唯一的行; 选择的答案反映了所提供的最佳答案,但如果给出了更好的答案,我会选择.
sql postgresql variables primary-key common-table-expression
我有一个 Django 系统,它定期为成千上万的客户计费。这是我的模型:
class Invoice(models.Model):
balance = models.DecimalField(
max_digits=6,
decimal_places=2,
)
class Transaction(models.Model):
amount = models.DecimalField(
max_digits=6,
decimal_places=2,
)
invoice = models.ForeignKey(
Invoice,
on_delete=models.CASCADE,
related_name='invoices',
null=False
)
Run Code Online (Sandbox Code Playgroud)
运行计费时,会使用多个嵌套for
循环创建数千张包含数十笔交易的发票,这会触发对每个创建的记录的插入。我可以bulk_create()
为每个单独的发票运行交易,但这仍然会导致对bulk_create()
.
如何批量创建数千个相关模型,以便维护关系并以最有效的方式使用数据库?
笔记:
我有一个表,称之为EVENTS,其中每行可以依赖于表中的0个或更多其他行.我需要一种表示这种关系的方法,这种方式也可以防止循环依赖(即一组事件返回到同一组中的事件).
我目前在EVENTS外部有一个链接表,称之为EVENTS_DEP.此表将依赖行链接到它们所依赖的行,并允许在一行上存在多个依赖项.如何使用这样的表防止循环依赖?
注意:如果完全可以只使用数据库设计(不使用脚本,触发器等),这将是理想的选择.
此外,如果只能使用触发器进行此操作,请告诉我应该运行什么类型的触发器(即在什么事件上)(插入时,可能?).
我很难弄清楚我的设置有什么问题。我正在尝试测试登录视图,无论我尝试什么,我都会收到:
Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.
我的测试:
import pytest
from ..models import User
@pytest.mark.django_db
def test_login(client):
# If an anonymous user accesses the login page:
response = client.get('/users/login/')
# Then the server should respond with a successful status code:
assert response.status_code == 200
# Given an existing user:
user = User.objects.get(username='user')
# If we attempt to log into the login page:
response = client.post('/users/login/', {'username': user.username, 'password': 'somepass'}) …
Run Code Online (Sandbox Code Playgroud) 问题是:我需要知道如何从执行的.sql脚本获取所有PostgreSQL输出以记录到文件,包括错误和查询结果.
我已经使用\ o和\ o打开和关闭标签包围了我的脚本,但这只记录了查询的结果,这告诉我什么做不成功.我已经尝试使用Unix工具将调用结果传递给PostgreSQL,如下所示:
$~: psql < filename.sql | tee &> filename.log
Run Code Online (Sandbox Code Playgroud)
......没有成功.在这种情况下,Filename.log最终完全为空.
我不想激活通用日志记录,因为我只关心我编写的脚本的成功/失败,并记录下来以备将来参考.
在Oracle中,我使用了SPOOL,在MySQL中我使用了TEE.这两项工作的很好,我的需求,但\ o不具备此功能,而且也没有激活日志记录,因为这会记录到一个单一的文件,我想在此基础上的文件,导致这些日志我的日志分离.
任何帮助,将不胜感激.
编辑:我使用的版本是9.1
编辑:我遇到的问题是使用-f和使用<执行.sql文件给我基本相同的结果; 它不记录错误,只记录查询结果.我需要以某种方式获取stderr(如果这是使用的)将其消息打印到文件而不仅仅是命令行,使得文件基本上看起来与运行文件的命令行结果相同,查询结果和错误混合我需要这样做的原因是因为它使调试.sql文件变得更加容易,它允许我保留目标记录,同时避免通用错误记录.
我有一个GeoDjango实例连接到PostGIS数据库后端。当我查询此数据库中的表时,出现标题错误:
AttributeError: 'DatabaseOperations' object has no attribute 'select'
Run Code Online (Sandbox Code Playgroud)
如在其他地方建议的那样,我检查以确保我的local_settings.py
文件指定了正确的数据库引擎:'ENGINE': 'django.contrib.gis.db.backends.postgis'
。这在我的设置文件中已经是正确的。
您如何解决此问题?
我在我的模型中定义了以下内容:
class TaskLink(models.Model):
task = model.ForeignKey(Task)
link_choices = (
models.Q(app_label="accounts", model="location"),
# Other models are also linked to here.
)
linked_content_type = \
models.ForeignKey(
ContentType,
limit_choices_to=link_choices
)
linked_object_id = models.PositiveIntegerField()
linked_object = \
generic.GenericForeignKey(
'linked_object_content_type',
'linked_object_id'
)
Run Code Online (Sandbox Code Playgroud)
该模型将Task
对象与元组中的任何模型链接起来link_choices
。在本例中,该accounts.Location
模型在此列表中。
当删除一个Location
对象导致相关对象的级联删除时,我的问题就出现了TaskLink
。删除失败并出现以下错误消息:
django.core.exceptions.FieldError: Cannot resolve keyword 'object_id' into field. Choices are: id, linked_object, linked_object_content_type, linked_object_content_type_id, linked_object_id, task, task_id
Run Code Online (Sandbox Code Playgroud)
视图是django.views.generic.DeleteView
仅包含pk_url_kwarg
参数和模型集的实例(以及添加到调度方法中的权限装饰器);TaskLink
在我将模型添加到混合中之前,它可以正常工作 linked_object_fine 。
我缺少什么?
编辑:这似乎可能是 Django 中的一个错误;当通过通用外键级联删除对象时,Django 会忽略传递给字段构造函数的字段名称字符串GenericForeignKey …
我有一个简单的脚本,应该导致三个div中的一个可见,而其他两个不是.执行工作的函数调用如下:
onchange="switch(this);"
Run Code Online (Sandbox Code Playgroud)
Firebug表示此文本出错:
Javascript Error: missing { before switch body
Run Code Online (Sandbox Code Playgroud)
它指示的错误代码是我的.php文件中的第一行,其中doctype的定义如下:
<!doctype html>
Run Code Online (Sandbox Code Playgroud)
这里有趣的是,我有另一个页面具有相同的doctype和一个几乎完全相同的脚本100%工作.这两个页面之间的唯一区别是,在一个有效的方法中,我从中调用脚本
关于Firebug输出的另一件事:在可行的页面上,firebug脚本窗口显示如下的javascript:
function onclick(event) {
switch(this);
}
Run Code Online (Sandbox Code Playgroud)
现在,在脚本不起作用的页面上,Firebug没有显示与onchange,onclick或其他任何内容有关的输出.它只是显示我的javascript文件中的代码,并告诉我,当它显示在那里时,我正在错过函数的开始括号.也许,即使我的主要php文件的头部中的脚本,范围发生了奇怪的事情,使得定义的函数对调用者不可见.有任何想法吗?
1:为什么Firebug告诉我错误是在第1行,其中当失败的函数甚至不在同一个文件中时定义了doctype?
2:doctype是否会影响javascript的运行方式,如果是这样,我该如何调试呢?
我宁愿继续只为这个项目使用HTML5,并使用javascript文件向后兼容.非常欢迎任何帮助!
PS我正在使用Apache2,PostgreSQL和PHP5运行Ubuntu 11.10.除了这个javascript问题之外,一切都完美无缺.
编辑:完全愚蠢的问题,但我猜这些事情有时会发生.如答案中所述,switch是Javascript中的关键字,更改我的函数名称解决了问题.我真的应该注意到,因为我的编辑突出了褐色的关键词...
我没有删除这篇文章(除非有人建议我这样做)以防其他人遇到同样的问题.我给出了首先回答它的人的答案,因为他的回答也解释了我收到错误信息的原因,从长远来看,这可能比简单的switch语句意识更有帮助.
我正在为一个系统设计一个数据库,该系统以定期的自定义间隔进行计费.由于间隔可以自定义,我需要能够定期处理计费,甚至可以每天处理.我希望这是数据库本身的一个功能,这样接口就不需要管理它,这可能会有问题.
我知道数据库触发器通常可以使用DML语句.有没有办法在MySQL,PostgreSQL或Oracle中创建一个触发器或自动功能,它能够每天处理计费而不使用数据库外部的任何东西来触发它除系统日期之外?
document.getElementsByName('name').value
回报undefined
.关于为什么会这样,我没有最模糊的想法.
我正确地包含了.js文件,Firebug在我的代码中没有发现任何错误,并且代码在第一行或第一行中失败,因为每次我调用上面提到的函数时,它都会返回undefined
.这让我完全糊涂了.
这是我如何包含该文件:
<script type="text/javascript" src="new.js"></script>
Run Code Online (Sandbox Code Playgroud)
以下是达到函数调用返回的第一个未定义值所需的所有代码:
function myfunction() {
var myvar = document.getElementsByName('myElement').value;
Run Code Online (Sandbox Code Playgroud)
......那时我得到未定义的变量.我用来触发脚本的按钮使用以下代码:
<button type="button" onclick="myfunction()">MyButton</button>
Run Code Online (Sandbox Code Playgroud)
document.getElementsByName()
退货的原因undefined
?document
对象是否与从另一个文件导入的脚本有任何范围问题?对不起,如果这是一个愚蠢的问题.我是Javascript的新手.
编辑:谢谢Mike Samuel的回答.这就像一个魅力固定它,我想知道为什么我以前不知道这个?我应该在租用的猜测中看到getElementsByName()建议如何返回多个值...
postgresql ×5
django ×4
sql ×4
javascript ×2
php ×2
apache2 ×1
arrays ×1
bulkinsert ×1
cascade ×1
eclipse ×1
eclipse-cdt ×1
formatting ×1
forms ×1
geodjango ×1
globals ×1
html ×1
logging ×1
mysql ×1
oracle ×1
post ×1
postgis ×1
primary-key ×1
pytest ×1
python ×1
python-2.7 ×1
scope ×1
spool ×1
tee ×1
tree ×1
triggers ×1
ubuntu-11.04 ×1
variables ×1