数组语法对象运算符的问题

时间:2013-03-12 17:46:23

标签: php arrays object syntax

$transaction->setFields(
    array(
    'first_name' => $_POST['x_first_name'],
    'last_name' => $_POST['x_last_name'],
    )

mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
    VALUES ("$transaction->setFields['x_first_name']",'last_name')");

从这个数组调用问题,必须是语法,但我找不到一个好的参考。

3 个答案:

答案 0 :(得分:0)

数组与否,当您从双引号内部访问变量时,始终使用大括号。

mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
VALUES ("{$array['x_first_name']}",'{$array['last_name']}')");

如果您可以在此页面中搜索“复杂(卷曲)语法”,则可以找到更多信息:http://php.net/manual/en/language.types.string.php

答案 1 :(得分:0)

您的数组缺少);,并且最后一个元素上有一个逗号。此外,查询中的引号是错误的。试试这个:

$transaction -> setFields(array('first_name' => $_POST['x_first_name'], 'last_name' => $_POST['x_last_name']));
mysql_query("INSERT INTO table_one (`first_name`, `last_name`) VALUES ('" . $transaction -> setFields['x_first_name'] . "','last_name')");

答案 2 :(得分:0)

很高兴看到$transaction的声明。也许使用SPL Array / Iterator或其他东西?假设没有其他的吸气者可能有getFields()?

$fields = $transaction->getFields();

或者只使用您在setter中传递的数组。无论哪种方式使用[] ...

mysql_query("INSERT INTO table_one (`first_name`, `last_name`) 
VALUES ("{$fields['x_first_name']}",'last_name')");

PDO上插入blurb,在折旧的mysql_ *中插入...