PHP form benim MySQL veritabanını güncellemek olmaz

4 Cevap php

Birisi bana ben f bu kodu düzeltmek lütfen yardım edebilir *** alışkanlık artık benim veritabanını güncellemek ed kadar.

    	DEFINE ('DB_USER', 'root');
    	DEFINE ('DB_PASSWORD', '');
    	DEFINE ('DB_HOST', 'localhost');
    	DEFINE ('DB_NAME', 'tags');

    	if ($dbc = mysql_connect (DB_HOST, DB_USER, DB_PASSWORD)) { 

    		if (!mysql_select_db (DB_NAME)) { 			

    			trigger_error("Could not select the database!\n
MySQL Error: " . mysql_error()); include ('./includes/footer.htm'); exit(); } } else { // If it couldn't connect to MySQL. trigger_error("Could not connect to MySQL!\n
MySQL Error: " . mysql_error()); include ('./includes/footer.htm'); exit(); } // End of $dbc IF. $tag = mysql_real_escape_string($_POST['tag']); $query = 'UPDATE tags SET count = count+1 WHERE tag = '.$tag; mysql_query($query,$dbc); if( !mysql_affected_rows() ) { $query = 'INSERT INTO tags (tag,count) VALUES('.$tag.',1)'; if (!mysql_query($query,$dbc)) { die('Error: ' . mysql_error()); } echo "1 record added"; } mysql_close($dbc);

4 Cevap

Eğer önceki sorunun yanıtlarını okumak gerekir, hala sql sorguları $ etiketi etrafında tırnak eksik.

$query = "UPDATE tags SET count = count+1 WHERE tag = '".$tag."'";

$query = "INSERT INTO tags (tag,count) VALUES('".$tag."',1)';

Evet bu satırı arkadaşı:

$query = 'UPDATE tags SET count = count+1 WHERE tag = '.$tag;

Bu gibi okumalısınız:

$query = "UPDATE tags SET count = count+1 WHERE tag = '".$tag . "'";

Serin.

Ben yapacağını ilk şey gerçekten bağlayan emin olmak için özel hata işleme tüm dışarı şerit olduğunu. O ya hep birlikte sorguyu değiştirmek ya. Ayrıca, güncelleyerek mysqli zarar verebilir. Yani ilk bağlantısını değiştirmeyi deneyin:

    DEFINE ('DB_USER', 'root');
    DEFINE ('DB_PASSWORD', '');
    DEFINE ('DB_HOST', 'localhost');
    DEFINE ('DB_NAME', 'tags');

    $dbc = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

    if ($dbc -> connect_error) {
        echo "Could not select the database!\n MySQL Error: ".$dbc -> connect_error;
        include ('./includes/footer.htm');
        exit();	
    }

Eğer yukarıda bir hata almazsanız, size bağlı. Sonra şöyle bir kukla sorguda koymak:

    $test_query = "SELECT * FROM tags WHERE count = 1";
    $test_results = $dbc->query($test_query);

Eğer gibi, gerçek sorguya geçmek böylece Sonra basit bir kontrol ekleyebilirsiniz:

    if($test_results -> num_rows > 0) {        

    $tag = mysql_real_escape_string($_POST['tag']);
    $update_query = "UPDATE tags SET count = count+1 WHERE tag = '$tag'";
    $dbc -> query($update_query);

Her biri bir sorgu için varsa o zaman bir hata atmak var:

    echo ($dbc -> error) ? $dbc -> error : "";

    if($dbc -> affected_rows < 1 ) {
          $insert_query = "INSERT INTO tags (tag,count) VALUES('$tag',1)";
          $dbc -> query($insert_query);
          echo ($dbc -> error) ? $dbc -> error : "1 record added";
       }
    }

    $dbc -> close();