Neden ") (mysql_query: verilen argüman geçerli değil" alabilirim

4 Cevap

Neden ") (mysql_query: verilen argüman geçerli değil" a alıyorum ilk kez ...

$r = mysql_query($q, $connection);

Aşağıdaki kodda ...

$bId    = trim($_POST['bId']);
$title  = trim($_POST['title']);
$story  = trim($_POST['story']);

$q  = "SELECT * ";
$q .= "FROM " . DB_NAME . ".`blog` ";
$q .= "WHERE `blog`.`id` = {$bId}";
$r = mysql_query($q, $connection);
//confirm_query($r);
if (mysql_num_rows($r) == 1) {      
    $q  = "UPDATE " . DB_NAME . ".`blog` SET
                        `title` = '{$title}',
                        `story` = '{$story}'
                    WHERE `id` = {$bId}";
    $r = mysql_query($q, $connection);
    if (mysql_affected_rows() == 1) {
        //Successful
        $data['success'] = true;
        $date['errors']  = false;
        $date['message'] = "You are the Greatest!";
    } else {
        //Fail
        $data['success'] = false;
        $data['error']   = true;
        $date['message'] = "You can't do it fool!";
    }        
}

Çok hata: Ben de bir "verilen argüman geçerli MySQL result resource değildir mysql_num_rows ()" olsun.

Yan notlar: Ben (şimdiye kadar en kötü hosting Hosting) 1 kullanılarak ve 1 am, PHP 5.2 (1 & 1 Hosting ile tek yolu) etkinleştirmek için bir satır metin ile özel htaccess dosyası..


Extra stuff add after the questions was posted...

Burada $ bağlantı tanımlanır nasıl. O Require_once işlevini kullanarak yukarı denir connection.php denilen kendi sayfada. Bu söz konusu olmak üzere, bir veritabanı bağlantısı gerektiren her sayfada denir ...

$connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
    if (!$connection) {
        die("Database Connection Failed: </br>" . mysql_error());
    }
    $db_select = mysql_select_db(DB_NAME,$connection);
    if (!$db_select) {
        die("Database Selection Failed: </br>" . mysql_error());
    }

... Ben bu aynı ben var sayfası için kullanmak ve ben onunla herhangi bir sorun olduğunu bağlamak çünkü çalışma olduğunu biliyorum. Henüz benim ev sunucusu üzerinde test sığınak, ama bir 1 & 1 Hosting konuyla ilgili olup olmadığını görmek için daha sonra gidiyorum.

GÜNCELLEME: Ben HostMoster 1 & 1 Hosting hareket sürecinde duyuyorum. 1 & 1 CGI gibi bir PHP çalışır ve (özel bir. Htaccess dosyası PHP5 çalıştırmak için yapabilirsiniz) yerine PHP5 PHP4 çalışır. Seni sonra güncellenir.

4 Cevap

Bu bir bağlantı değil çünkü ilk olacak ve bu bir bağlantı değil, çünkü o bir sorgu sonuç değil çünkü ikinci olurdu. mysql_error() bağlantısında neyin yanlış gittiğini anlamaya kullanın.

Benim tahminim $connection düzgün açılmış değil olmasıdır. Sen gibi bir satır olması gerekir:

$connection = mysql_error($server, $user, $pass);

Ayrıca mysql_error() neden başarısız oluyor nedenini görmek için kontrol edin.

Bence sen bir mysql_query() gerçekleştirmek için çalışmadan önce bir mysql_connect() instead of mysql_error() olması gerektiğini önermek anlamına geliyordu cletus. Muhtemelen (1and1 size localhost aşağıda yerine kullanacağı veritabanı için bağlanmak için belirli bir hostname vermiş olabilir hariç) bu gibi görünecektir:

//Make sure this goes before any of your other mysql_* functions
$connection = mysql_connect('localhost', 'yourUserName', 'yourPassword');

Eğer kullandığınız anda açık birden fazla veritabanı bağlantıları var ve sorgu aramaları yaparken ikisi arasında ayrım yapmak emin olmak gerekir sürece sorguları her biri için $connection etrafında geçen gerçekten gerekli değildir. Aksi takdirde, mysql_query sen size bağlı son veritabanı kullandığınızı varsayar.

Ayrıca, güvenlik amaçlı Frank tarafından belirtildiği gibi mysql_real_escape_string() şöyle kullanmanız gerekir:

$q  = "SELECT * ";
$q .= "FROM " . DB_NAME . ".`blog` ";
$q .= "WHERE `blog`.`id` = ".mysql_real_escape_string($bId).";

(WAMP ile) benim yerel sisteminde test, ben hiç problem yaşamadım. Ben sorunları vardı zamanda, 1 & 1 Hosting kullanıyordum. Muhtemelen benim sorunlara neden CGI olarak 1 & 1 Hosting çalışma PHP,. Ben 1 & 1 ile dağıt bok işlemek ve HostMonster geçmek olamazdı. Şimdi, herhangi bir sorun yok. Artı, ben yerine 1 & 1 yönetici paneli üzerinde cPanel kullanabilirsiniz.