Regularily, but not in certain tables, I don�t get the excepted result
back from a query which in all other cases works perfect.
My opinion is that there could be a problem with the index of the table.
Probably there could also a bug in the wrapper script which I use to
access the database and sometimes tables are not closed correctly (when
I use ANALYSE/REPAIR)
I use the following fragment, perhaps its not the best script to access
the database:
<? $av_qid = db_query("
SELECT *
FROM attributeValue
WHERE attribute_type_id = 1
");
while ($rr = db_fetch_object($av_qid))
{
...
}
?>
-----------------------
script library to access db:
<?
if (!isset($DB_DIE_ON_FAIL)) { $DB_DIE_ON_FAIL = true; }
if (!isset($DB_DEBUG)) { $DB_DEBUG = false; }
function db_connect($dbhost, $dbname, $dbuser, $dbpass) {
/* connect to the database $dbname on $dbhost with the user/password pair
* $dbuser and $dbpass. */
global $DB_DIE_ON_FAIL, $DB_DEBUG;
if (! $dbh = mysql_pconnect($dbhost, $dbuser, $dbpass)) {
if ($DB_DEBUG) {
echo "<h2>Can't connect to $dbhost as $dbuser</h2>";
echo "<p><b>MySQL Error</b>: ", mysql_error();
} else {
echo "<h2>Database error encountered</h2>";
}
if ($DB_DIE_ON_FAIL) {
echo "<p>This script cannot continue, terminating.";
die();
}
}
if (! mysql_select_db($dbname)) {
if ($DB_DEBUG) {
echo "<h2>Can't select database $dbname</h2>";
echo "<p><b>MySQL Error</b>: ", mysql_error();
} else {
echo "<h2>Database error encountered</h2>";
}
if ($DB_DIE_ON_FAIL) {
echo "<p>This script cannot continue, terminating.";
die();
}
}
return $dbh;
}
function db_disconnect() {
/* disconnect from the database, we normally don't have to call this
function
* because PHP will handle it */
mysql_close();
}
function db_query($query, $debug=false, $die_on_debug=true,
$silent=false) {
/* run the query $query against the current database. if $debug is
true, then
* we will just display the query on screen. if $die_on_debug is true,
and
* $debug is true, then we will stop the script after printing he debug
message,
* otherwise we will run the query. if $silent is true then we will
surpress
* all error messages, otherwise we will print out that a database error
has
* occurred */
global $DB_DIE_ON_FAIL, $DB_DEBUG;
if ($debug) {
echo "<pre>" . htmlspecialchars($query) . "</pre>";
if ($die_on_debug) die;
}
$qid = mysql_query($query);
if (! $qid && ! $silent) {
if ($DB_DEBUG) {
echo "<h2>Can't execute query</h2>";
echo "<pre>" . htmlspecialchars($query) . "</pre>";
echo "<p><b>MySQL Error</b>: ", mysql_error();
} else {
echo "<h2>Database error encountered</h2>";
}
if ($DB_DIE_ON_FAIL) {
echo "<p>This script cannot continue, terminating.";
die();
}
}
return $qid;
}
function db_fetch_array($qid) {
/* grab the next row from the query result identifier $qid, and return it
* as an associative array. if there are no more results, return
FALSE */
return mysql_fetch_array($qid);
}
function db_fetch_row($qid) {
/* grab the next row from the query result identifier $qid, and return it
* as an array. if there are no more results, return FALSE */
return mysql_fetch_row($qid);
}
function db_fetch_object($qid) {
/* grab the next row from the query result identifier $qid, and return it
* as an object. if there are no more results, return FALSE */
return mysql_fetch_object($qid);
}
function db_num_rows($qid) {
/* return the number of records (rows) returned from the SELECT query
with
* the query result identifier $qid. */
return mysql_num_rows($qid);
}
function db_affected_rows() {
/* return the number of rows affected by the last INSERT, UPDATE, or
DELETE
* query */
return mysql_affected_rows();
}
function db_insert_id() {
/* if you just INSERTed a new row into a table with an autonumber, call
this
* function to give you the ID of the new autonumber value */
return mysql_insert_id();
}
function db_free_result($qid) {
/* free up the resources used by the query result identifier $qid */
mysql_free_result($qid);
}
function db_num_fields($qid) {
/* return the number of fields returned from the SELECT query with the
* identifier $qid */
return mysql_num_fields($qid);
}
function db_field_name($qid, $fieldno) {
/* return the name of the field number $fieldno returned from the SELECT
query
* with the identifier $qid */
return mysql_field_name($qid, $fieldno);
}
function db_data_seek($qid, $row) {
/* move the database cursor to row $row on the SELECT query with the
identifier
* $qid */
if (db_num_rows($qid)) { return mysql_data_seek($qid, $row); }
}
?>
-----------------------------------------
Andreas Habereder
Kirchenstr. 17e
81675 M�nchen
private: [EMAIL PROTECTED]
fax: +49 1212 5 107 37 317
mobile: +49 172 838 7771
-----------------------------------------
This message is for the designated recipient only and may contain
privileged, proprietary, or otherwise private information.� If you have
received it in error, please notify the sender immediately and delete the
original.� Any other use of the email by you is prohibited.
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php