我尝试在phpMyAdmin上执行完全相同的SQL查询,结果返回1行信息(包含4个字段)。但是使用mysql_query($ sql,$ this-> DB_conn),PHP返回0行。
function getFTPInfo($cid) {
$sql = 'SELECT tableA.host, tableA.username, tableA.password, ftp_folders.folder
FROM (
SELECT ftp_accounts.host, ftp_accounts.username, ftp_accounts.password, users.cid
FROM ftp_accounts
INNER JOIN users
ON ftp_accounts.ftp_id = users.ftp_id
WHERE users.cid = "' .$cid. '"
) AS tableA
INNER JOIN ftp_folders
ON tableA.cid = ftp_folders.cid';
$retQuery = mysql_query($sql,$this->DB_conn) or die('Invalid : ' . mysql_error($this->DB_conn) . '<br>');
echo "mysql_query : " .$retQuery . "<br>";
echo "Number of Fields: " . mysql_num_fields($retQuery) . "<br>";
for($i=0; $i<4 ; $i++) {
echo "Field Names $i: " . mysql_field_name($retQuery,$i) . "<br>";
}
echo "Number of Rows: " . mysql_num_rows($retQuery) . "<br>";
$ftpArray = mysql_fetch_array($retQuery);
foreach($ftpArray as $v) {
echo '<p>v: ' . $v . '</p>';
}
mysql_free_result($retQuery);
return $ftpArray;
代码产生的结果是:
mysql_query:资源ID#6 字段数:4 字段名称0:主机 字段名称1:用户名 字段名称2:密码 字段名称3:文件夹 行数:0
为什么我的查询中有0行? PHP是否允许嵌套选择查询?另外,我试过了
mysql_ping($this->DB_conn);
结果显示我已建立数据库连接