Php 什么';这个sql查询和mysql\u fetch\u数组有什么问题吗?

Php 什么';这个sql查询和mysql\u fetch\u数组有什么问题吗?,php,sql,Php,Sql,这些行来自web服务器上的php函数,客户端是ios应用程序, 我在result2查询中得到一个错误 $result = query("SELECT field1 FROM table1 WHERE field2='%s' limit 1", $value); $row = mysql_fetch_array($result); $result2 = query("SELECT field2 FROM table1 WHERE field3='%s' limit 1", $row['field1

这些行来自web服务器上的php函数,客户端是ios应用程序, 我在result2查询中得到一个错误

$result = query("SELECT field1 FROM table1 WHERE field2='%s' limit 1", $value);
$row = mysql_fetch_array($result);
$result2 = query("SELECT field2 FROM table1 WHERE field3='%s' limit 1", $row['field1']);
在Xcode上,我得到了错误(在json中):

下面是函数查询的定义

//executes a given sql query with the params and returns an array as result
function query() {
global $link;
$debug = false;

//get the sql query
$args = func_get_args();
$sql = array_shift($args);

//secure the input
for ($i=0;$i<count($args);$i++) {
    $args[$i] = urldecode($args[$i]);
    $args[$i] = mysqli_real_escape_string($link, $args[$i]);
}

//build the final query
$sql = vsprintf($sql, $args);

if ($debug) print $sql;

//execute and fetch the results
$result = mysqli_query($link, $sql);
if (mysqli_errno($link)==0 && $result) {

    $rows = array();

    if ($result!==true)
    while ($d = mysqli_fetch_assoc($result)) {
        array_push($rows,$d);
    }

    //return json
    return array('result'=>$rows);

} else {

    //error
    return array('error'=>'Database error');
}
}
//使用参数执行给定的sql查询,并返回一个数组作为结果
函数查询(){
全球美元联系;
$debug=false;
//获取sql查询
$args=func_get_args();
$sql=数组移位($args);
//保护输入
对于($i=0;$i$行);
}否则{
//错误
返回数组('error'=>'Database error');
}
}
这个问题怎么了


感谢您在
query()
函数中使用
mysqli\u
函数,但您正在尝试使用
mysql\u fetch\u array()
获取结果。您需要使用:
mysqli\u fetch\u array()

实际上,它看起来像是您的
query()
函数为您完成的。您根本不需要使用函数。查看
query()
函数的这一部分:

$rows = array();

if ($result!==true)
while ($d = mysqli_fetch_assoc($result)) {
    array_push($rows,$d);
}

//return json
return array('result'=>$rows);
但是,我不知道为什么它会说它是json,因为它只是一个普通数组而不是json数组。因此,您应该在代码中使用:

$row = $result['result'][0];

这将得到第一行。

也许您必须对结果进行json\u编码

//return json
return json_encode(array('result'=>$rows));

您是否定义了自定义函数
query()
?如果没有,您就没有调用
mysql\u query()
。在开发代码时,始终打开错误报告并在屏幕上显示错误<代码>错误报告(E_全部);ini设置(“显示错误”,1)问题不在于查询;你的JSON正在被解析。您可能有格式不正确的JSON。另外,除非
query()
是一个创建sql命令的自定义函数,否则看起来您使用的是mysqli或pdo语句,而不能使用
mysql\u fetch\u array
。刚刚编辑了问题@michael berkowskiyes@pitchen,这是mysqli
//return json
return json_encode(array('result'=>$rows));