Autor Zpráva
Kleciss
Profil
Ahoj, neví někdo kde by mohl být problém? Objevuje se mi hláška Could not update data: No database selected

Děkuji
Kod:
   
  
     <?php
         if(isset($_POST['update'])) {
            $dbhost = 'localhost';
            $dbuser = 'kalendar20';
            $dbpass = 'xxxx';
            
            $conn = mysql_connect($dbhost, $dbuser, $dbpass);
            
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }
            
            $id = $_POST['id'];
            $prvni = $_POST['prvni'];
         
            
            $sql = "UPDATE leden ". "SET prvni = $prvni ". 
               "WHERE id = $id" ;
            mysql_select_db('kalendar20');
            $retval = mysql_query( $sql, $conn );
            
            if(! $retval ) {
               die('Could not update data: ' . mysql_error());
            }
            echo "Updated data successfully\n";
            
            mysql_close($conn);
         }else {
            ?>
               <form method = "post" action = "<?php $_PHP_SELF ?>">
                  <table width = "400" border =" 0" cellspacing = "1" 
                     cellpadding = "2">
                  
                     <tr>
                        <td width = "100">ID1</td>
                        <td><input name = "id" type = "text" value"1"
                           id = "id"></td>
                     </tr>
                  
                     <tr>
                        <td width = "100">První</td>
                        <td><input name = "prvni" type = "text" 
                           id = "prvni"></td>
                     </tr>
                  
                     <tr>
                        <td width = "100"> </td>
                        <td> </td>
                     </tr>
                  
                     <tr>
                        <td width = "100"> </td>
                        <td>
                           <input name = "update" type = "submit" 
                              id = "update" value = "Update">
                        </td>
                     </tr>
                  
                  </table>
               </form>
            <?php
         }
      ?>
      
   
             
NoxOne
Profil
Já bych to změnil takto: (ps: ale bezpečnost ti nic neříká ... osobně používám pro DB "bindování" )

<?php
         if(isset($_POST['update'])) {
            $dbhost = 'localhost';
            $dbuser = 'kalendar20';
            $dbpass = 'xxxx';
            $dbname = 'kalendar20';
            
            $conn = mysql_connect($dbhost, $dbuser, $dbpass, $dbname);
            
            if(! $conn ) {
               die('Could not connect: ' . mysql_error());
            }
            
            $id = $_POST['id'];
            $prvni = $_POST['prvni'];
         
            
            $sql = "UPDATE leden  SET prvni = ".$prvni." WHERE id = ".$id." ;
            
            $retval = mysql_query( $sql, $conn );
            
            if(! $retval ) {
               die('Could not update data: ' . mysql_error());
            }
            echo "Updated data successfully\n";
            
            mysql_close($conn);
         }else {
            ?>
               <form method = "post" action = "<?php $_PHP_SELF ?>">
                  <table width = "400" border =" 0" cellspacing = "1" 
                     cellpadding = "2">
                  
                     <tr>
                        <td width = "100">ID1</td>
                        <td><input name = "id" type = "text" value"1"
                           id = "id"></td>
                     </tr>
                  
                     <tr>
                        <td width = "100">První</td>
                        <td><input name = "prvni" type = "text" 
                           id = "prvni"></td>
                     </tr>
                  
                     <tr>
                        <td width = "100"> </td>
                        <td> </td>
                     </tr>
                  
                     <tr>
                        <td width = "100"> </td>
                        <td>
                           <input name = "update" type = "submit" 
                              id = "update" value = "Update">
                        </td>
                     </tr>
                  
                  </table>
               </form>
            <?php
         }
      ?>
breeta
Profil
Já bych hlavně nevytahoval databázi přes mysql_connect, které je zastaralé www.php.net/manual/en/function.mysql-connect.php požij raději PDO.
NoxOne
Profil
Tak myslím že o to tu nešlo, a když by chtěl "bindovat" tak snad použije mysqli.

Dle všeho chce uložit jeden formulář a použití PDO by bylo jako vzít rotačák na komára.
breeta
Profil
NoxOne:
PDO je základ k připojení databází, nevím proč by to měl být rotačák, neradím mu ORM.
Napsal jsem že to je zavrženo a měl by to přespat, nech to na něm

Pomocí (MySQLi Procedural)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if (mysqli_query($conn, $sql)) {
  echo "Record updated successfully";
} else {
  echo "Error updating record: " . mysqli_error($conn);
}

mysqli_close($conn);
?>

PDO
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

  $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

  // Prepare statement
  $stmt = $conn->prepare($sql);

  // execute the query
  $stmt->execute();

  // echo a message to say the UPDATE succeeded
  echo $stmt->rowCount() . " records UPDATED successfully";
} catch(PDOException $e) {
  echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0