我有以下代码:
$url = @mysql_fetch_array(mysql_query("SELECT url FROM dl LIMIT 1"));
$url = $url[0];
但我宁愿用它作为:
$url = @mysql_fetch_array(mysql_query("SELECT url FROM dl LIMIT 1"))[0];
为什么第二个错误是因为我觉得语法正确?还是我错过了什么?
PHP Parse error: syntax error, unexpected '[' in settings.php on line 52
首先是
$url = @mysql_fetch_array(mysql_query("SELECT url FROM dl LIMIT 1"))[0];
不是有效的php语法(*):php版本<=中不支持数组取消引用5.3(*)
从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组解引用。以前只能使用临时变量。
从PHP 5.5开始,可以对数组文字进行数组解引用。
Example #7 Array dereferencing
<?php
function getArray() {
return array(1, 2, 3);
}
// on PHP 5.4
$secondElement = getArray()[1];
// previously
$tmp = getArray();
$secondElement = $tmp[1];
// or
list(, $secondElement) = getArray();
?>
其次,不要使用mysql_*
,因为这些函数已被弃用(请使用mysqli_*
或PDO
)
如果提取单行,则使用
mysql_fetch_row
而不是
mysql_fetch_array
如果你换成mysqli或pdo会更好。您试图获取数组值的方式在php 中是错误的
从PHP 5.5.0开始,不赞成使用mysql函数,并且很快将从PHP
包中删除。最好使用MySQLi
或PDO
来感到安全
有关此主题的更多信息,请参阅:mysqli或PDO-优缺点是什么?
不管怎样。在这种情况下,你可以使用mysql_result
,有三个参数:
结果:来自mysql_query()
的资源
行:行数,从0开始。
字段:字段的名称,或结果集中该字段的索引。
$url = @mysql_result(mysql_query("SELECT url FROM dl LIMIT 1"), 0, 'url');