ユーザーが選択した 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);
}
テストの行11 | Hello | PHP
がエコーする場合11HelloHelloPHPPHP