downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mssql_fetch_batch> <mssql_fetch_array
[edit] Last updated: Fri, 25 May 2012

view this page in

mssql_fetch_assoc

(PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)

mssql_fetch_assoc結果の現在行を連想配列として返す

説明

array mssql_fetch_assoc ( resource $result_id )

取得した行に対応する連想配列を返し、内部データポインタをひとつ進めます。 mssql_fetch_assoc() は、 mssql_fetch_array() の二番目のオプションパラメータに MSSQL_ASSOC を指定してコールするのと同等です。

パラメータ

result_id

処理対象となる結果リソース。これは mssql_query() のコールによって取得します。

返り値

取得した行に対応する連想配列を返します。もう行がない場合は FALSE を返します。

例1 mssql_fetch_assoc() の例

<?php
// select クエリを MSSQL に送信します
$query mssql_query('SELECT [username], [name] FROM [php].[dbo].[userlist]');

// レコードが存在するかどうかを調べます
if (!mssql_num_rows($query)) {
    echo 
'No records found';
}
else
{
    
// ユーザー一覧を
    // * name (username) 形式で出力します

    
echo '<ul>';

    while (
$row mssql_fetch_assoc($query)) {
        echo 
'<li>' $row['name'] . ' (' $row['username'] . ')</li>';
    }

    echo 
'</ul>';
}

// 結果を開放します
mssql_free_result($query);
?>



mssql_fetch_batch> <mssql_fetch_array
[edit] Last updated: Fri, 25 May 2012
 
add a note add a note User Contributed Notes mssql_fetch_assoc
simonh at dreameyemedia dot com 28-Dec-2008 02:35
With the code mentioned above and in relation to a MSSQL query.

When using the following statements  to retrieve dat "fetch_assoc" then running a split statement PHP it then into a array it will not pass the data retrieved will show correctly in a XML document created by the DOM object.

<?php
require("phpsqlajax_dbinfo.php");

// Start XML file, create parent node

$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);

// Opens a connection to a DreameyeOne server
$connection=mssql_connect ("ELF\ELF", $username, $password);
if (!
$connection) {
  die(
'Not connected : ' . mssql_error());
}

// Set the active DreameyOne database
$db_selected = mssql_select_db($database, $connection);
if (!
$db_selected) {
  die (
'Can\'t use db : ' . mssql_error());
}

// Select all the rows in the markers table
$query = "SELECT msg FROM ozekimessagein ORDER BY senttime DESC";
$result = mssql_query($query);
if (!
$result) {
  die(
'Invalid query: ' . mssql_error());
}
header("Content-type: text/xml");
// Iterate through the rows, adding XML nodes for each
while ($row = @mssql_fetch_assoc($result)) {
      list (
$vehicleID,$long,$lat) = split(',',$row);
// ADD TO XML DOCUMENT NODE
     
$node = $dom->createElement("marker");
     
$node = $dom->createElement("marker");
     
$newnode = $parnode->appendChild($node);
     
$newnode->setAttribute("VehicleID:",$vehicleID);
     
$newnode->setAttribute("lat",$lat);
     
$newnode->setAttribute("long",$long);
}

echo
$dom->saveXML();

?>

Merlinman
pegas1981 22-May-2007 04:41
[quote]
WARNING:

PHP 4.3.4 introduced a BUG.

if the DB has: '' (empty string)
this function will return: ' ' (string with 1 space)

see: http://bugs.php.net/bug.php?id=26315
[/quote]
the same version PHP 5.2.0
24-Mar-2007 09:25
regarding 'The 30 character field name limit is still an issue'

Thought about using shorter column names and using the description to give more info regarding the column.

as to the
$result = mssql_query('SELECT articles.id, issues.id FROM articles, issues WHERE articles.pub_date = issues.pub_date');

try this
$result = mssql_query('SELECT articles.id as aid, issues.id as iid FROM articles, issues WHERE articles.pub_date = issues.pub_date');
jbarker at erepublic dot com 24-Jan-2007 09:35
Beware when using mssql_fetch_assoc() to return data pulled in from joined tables; if the tables have the same column names, the column mentioned last will overwrite the prior one when populating the assoc.

Example:

<?
$result
= mssql_query('SELECT articles.id, issues.id FROM articles, issues WHERE articles.pub_date = issues.pub_date');
$record = mssql_fetch_assoc($result);
print_r($record);

/*
Prints:

Array
(
    [id] => 123
)

*/
?>
brandonkirsch at uses dot gmail dot domain 11-Dec-2006 10:43
We are running FreeTDS on a Linux Apache / PHP server and encountered the following error when calling mssql_fetch_assoc()

Fatal error: Call to undefined function mssql_fetch_assoc()

We were confused because *some* of the mssql commands worked, such as mssql_connect and mssql_fetch_array.  The trick to make mssql_fetch_assoc() work lies in configuring FreeTDS.  We had to change the statement to contain the --enable-msdblib switch:

./configure --enable-msdblib

We then recompiled PHP to include --with-mssql=/path/to/freetds and finally mssql_fetch_assoc() began working properly.
ben at thelocust dot org 03-Nov-2006 12:22
The 30 character field name limit is still an issue as of PHP 5.1.6, at least running under IIS.
electricsurfer.com 01-Dec-2003 08:38
WARNING:

PHP 4.3.4 introduced a BUG.

if the DB has: '' (empty string)
this function will return: ' ' (string with 1 space)

see: http://bugs.php.net/bug.php?id=26315
php at electricsurfer dot com 03-Jun-2003 11:34
WARNING: as of PHP 4.3.2

The keys in the array will only contain the 1st 30 characters of the column name if you have column names longer than that.

 
show source | credits | sitemap | contact | advertising | mirror sites