Autor Zpráva
joker2626
Profil
Čau, udělal jsem si jednoduchý script na na uložení zprávy do DB. Script funguje, zpráva se mi do DB uloží ale hází to chybovou hlášku "Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/web/virtuals/156857/virtual/www/domains/myweb/includes/contact.php on line 16" a nemůžu se jí zbavit, zkoušel jsem vše co jsem k tomu zde na fóru našel a nic nepomohlo.

<?php
    require_once "config.php";
    SetLocale(LC_ALL, "Czech");
    if(isset($_POST['submit'])){
    
        mysql_connect($server_ip, $select_username, $select_pass);
        mysql_select_db($db_name);

        $post_date = StrFTime("%d.%m. %Y");
        $email = $_POST['email'];
        $message = $_POST['content'];
        
        
            $query = mysql_query("INSERT INTO contact ('date', 'email', 'message') VALUES ('$post_date', '$email', '$message')");
            
            $fetch = mysql_fetch_array($query);
                
            echo "Zpráva odeslána.";
        
        
    }
?>

16. řádek by měl být $fetch = mysql_fetch_array($query);

Další problém je, že se mi zpráva do DB uloží bez diakritiky, místo +ěščšřčžýáí mám v DB ěščřžýá.

Už si s tím nevím rady, budu rád za každou pomoc. Předem děkuji.
Alphard
Profil
Proč tam mysql_fetch_array vůbec je? Insert nevrací resource, jen true/false.

Některé časteji řešené dotazy pro MySQL - FAQ » MySQL a čeština
nightfish
Profil
Kromě výše uvedeného je taky chyba v dotazu: názvy sloupců se uvozují zpětným apostrofem (backtick). Správně tedy:
$query = mysql_query("INSERT INTO contact (`date`, `email`, `message`) VALUES ('$post_date', '$email', '$message')");

A také: databázový dotaz v této podobě je náchylný na SQL injection.

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