08. marts 2003 - 15:45Der er
5 kommentarer og 1 løsning
mysql_error...
Hej
jeg har normalt bare brugt
mysql_query("et query")or die(mysql_error());
til at lave et database kald, men nu er jeg igang med at udvide mit output control...
SÅ, jeg er igang med at lave en function (doQuery()) til at lave mine query, som så skal lave de fornødne ting, hvis noget går galt...
function doQuery($sqlStr, $return = false){ checkConnection(); //en funktion der tjekker om database er åbnet if($return == false){ mysql_query($sqlStr); } else{ return mysql_query($sqlStr); } }
her kommer der som ikke går så godt...
HVIS et at kaldene går galt, så skal der ske følgende:
$error = true; // variablen $error skal have indholdet true $errorTxt = "MySQL: " . mysql_error(); // variablen $errorTxt skal have indholdet "MySQL:" plus indholdet af mysql_error()...
MEN, det kan jeg ikke få den til... jeg har prøvet lidt forskelligt, men jeg kan ikke lige umdibart få det til at lykkedes...
så en eller anden, jeg tåger, så hjælp mig lige... ved ikke hvorfor det ikke vil sådan som jeg vil...
Efter ti år i London, Madrid, Paris og Utrecht kommer Sabios AI-fokuserede program af arrangementer om kundeoplevelser, ‘Disrupt’, for første gang til Danmark.
Jeg tror ikke jeg forstår dit spg. helt, men måske du kan bruge dette. Det er nogle mysql abstraktioner jeg gennem laaaaang tid har anvendt med fornøjelse. Nu er jeg dog gået over til PEAR...
$dbhost = "xxxxxxxx"; $dbname = "xxxxxxxxx"; $dbuser = "xxxxxxxx"; $dbpass = "xxxxxxx"; function db_connect() { global $dbhost, $dbname, $dbuser, $dbpass;
mysql_connect($dbhost, $dbuser, $dbpass) or sql_error("Kunne ikke oprette en forbindelse til MySQL.", mysql_errno(), mysql_error());
mysql_select_db($dbname) or sql_error("Kunne ikke vælge databasen: $dbname", mysql_errno(), mysql_error());
}
# Foretager en forespørgsel til mySQL. function getData($query) {
db_connect(); $resultat = mysql_query($query) or sql_error("Kunne ikke udføre: <em>$query</em><br>", mysql_errno(), mysql_error());
function putData($query) { db_connect(); $resultat = mysql_query($query) or sql_error("Kunne ikke udføre: <em>$query</em>", mysql_errno(),mysql_error()); db_close(); if(!$resultat) { return 0; } return 1; }
# Lukker forbindelsen til mySQL - fejlbehandler function db_close() { mysql_close() or sql_error("Kunne ikke lukke forbindelsen til MySQL!", mysql_errno(), mysql_error());
function sql_error($msg, $errnum, $errtxt){ global $top_html, $prefix, $error_txt, $bottom_html; $msg = $prefix."<li><p class=\"sub\">".$msg; echo $top_html.$msg."<li>".$errnum.": ".$errtxt.$error_txt.$bottom_html; exit; }
læg iøvrigt mærke til at en query pakkes ind i endnu et array. Det er noget der har hængt ved, men som du selvfølgeligt kan lave om. Det smarte er dog at det giver mulighed for at anvende extract() funktionen istedet for at skulle tildele resultat-arrayet variable. Eksempel på en forespørgsel: require_once("mysql.php"); $sql = "SELECT * FROM dinTabel"; $result = getData($sql); for($i=0;$i<count($result);$i++){ extract($result[$i]);
//Nu er vars det samme som kolonneoverskrift i tabel echo $id; echo $first_column; echo $second_column;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.