PHP/MySQL | überprüfen ob Tabelle existiert

Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /usr/local/nagios/share/tools/install.php on line 20

In Zeile 20 steht aber: echo mysql_error($result);


Hier der Code:
PHP:
$sql="CREATE TABLE IF NOT EXISTS `SV_LINKVERWALTUNG` (
  `id` int(255) NOT NULL auto_increment,
  `linkname` varchar(25) NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

$db_connection=db_connect();
$result = mysql_query($sql);
echo mysql_error($result);
db_disconnect($db_connection);
 
Mach das mal bitte so:
PHP:
echo error_reporting(E_ALL);
Und das hier so:
PHP:
$result = mysql_query($sql,$db_connection);
Ändert sich was?
 
Warum 2039?
Weil man anstatt E_ALL ^ E_NOTICE auch 2039 als Parameter bei error_reporting übergeben kann.
Deshalb bitte die Funktion ohne Echo und ohne Anführungsstriche.
 
Also ich würde mal den mysql_connect und den mysql_select_db aus der Funktion auslagern und in die install.php Datei öben einfügen. Dann kann man schauen ob es an der Funktion liegt, an der Datenbank selbst oder ähnliches.
 
Nun hab ich folgendes:
PHP:
<?
$dbserver="localhost";
$dbuser="dbuser";
$dbpass="dbpass";
$dbname="dbname";

$db = mysql_connect ($dbserver,$dbuser, $dbpass) or die("Es konnte keine Verbindung hergestellt werden!");
mysql_select_db($dbname) or die("Auswahl der Datenbank fehlgeschlagen!");

        
$sql="CREATE TABLE IF NOT EXISTS `SV_LINKVERWALTUNG` (
  `id` int(255) NOT NULL auto_increment,
  `linkname` varchar(25) NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

$result = mysql_query($sql,$db_connection);
error_reporting(E_NOTICE);
?>


Da kommt folgende Fehlermeldung:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /usr/local/nagios/share/tools/install.php on line 26
 
PHP:
<?php
error_reporting(E_ALL);

$dbserver="localhost";
$dbuser="dbuser";
$dbpass="dbpass";
$dbname="dbname";

$db = mysql_connect ($dbserver,$dbuser, $dbpass) or die("Es konnte keine Verbindung hergestellt werden!");
mysql_select_db($dbname,$db) or die("Auswahl der Datenbank fehlgeschlagen!");

$sql="CREATE TABLE IF NOT EXISTS `SV_LINKVERWALTUNG` (
  `id` int(255) NOT NULL auto_increment,
  `linkname` varchar(25) NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";
var_dump ( $result = mysql_query($sql) );
?>
 
Jetzt legt er die Tabelle an. Wenn du mir auch noch verraten könntest wie ich mehrer Anweisungen übergeben kann, also:

PHP:
$sql1="CREATE TABLE IF NOT EXISTS `SV_LINKVERWALTUNG` (
  `id` int(255) NOT NULL auto_increment,
  `linkname` varchar(25) NOT NULL,
  `url` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1";

$sql2="INSERT INTO `SV_LINKVERWALTUNG` (`id`, `linkname`, `url`) VALUES
       (1, 'Test1', 'Test1'),
       (2, 'Test2', 'Test2'),
       (3, 'Test3', 'Test3')";

$sql=array($sql1, $sql2);
var_dump ( $result = mysql_query($sql));
 
Zurück