我有一個函數,允許我根據用戶選擇的SQL服務器類型執行sql查詢。該函數可以很好地獲取單行數據,但它永遠不會返回超過1行。從一個函數內部獲取動態數組
這是SQL函數:
function sqlQuery($query){
switch (DATABASE_TYPE) {
case 'MYSQL':
// Establishes a connection to the database.
$connection = mysql_connect(DATABASE_LOCATION, DATABASE_USERNAME, DATABASE_PASSWORD);
if(!$connection){
throw new Exception(mysql_error(), 1);
}
mysql_select_db(DATABASE_NAME);
// Performs the query.
global $response;
$response = mysql_query($query);
if(!$response){
throw new Exception(mysql_error(), 1);
}
return mysql_fetch_array($response);
break;
}
}
而且像我上面說的,這只是正常的單行查詢,但我不能得到任何更多。
如果我試試這個:
$sql = "SELECT * FROM test"
$rows = sqlQuery($sql);
foreach($rows as $value){
echo($value);
}
如果測試的第1行是1 | Hello | PHP
它將呼應11HelloHelloPHPPHP
我不能使用任何數據庫類型特定的方法,如mysql_fetch,因爲此應用程序需要與其他sql服務器類型一起使用。 –
這只是在mysql中做的一個例子,當然你會這樣做的情況下'MYSQL'的其他SQL服務器類型,你會玩CASE裏面 –