Sorgu php koştu zaman 0 satır döndürür phpmyadmin çalışıyor

4 Cevap php

Ben gerçekten bu stumped. İşte php:

Update: (Ben bu farklı bir şekilde yaptım önce, ama mysql_real_escape_string hakkında bilmiyordum) girişleri kaçmış. Ayrıca, tek tırnak ile çift tırnak yerine, henüz aynı sorun oluyor. Aşağıda güncellenmiş kodu:

$request = mysql_real_escape_string($_POST['id']);
$colName = mysql_real_escape_string($_POST['col_name']);

function executeAssoc1($q)
{
    $r = mysql_query($q) or die(mysql_error() . ' ' . $q);
    $rass = mysql_fetch_assoc($r);
    return $rass;
}

foreach(array_keys($_POST) as $pitem)
{

    if($pitem == (...what I want it to...))
    {
        $pitem_name = mysql_real_escape_string(rawurldecode($pitem));

        $qf = "SELECT * FROM possible_values WHERE table_id=$request AND col_name='$colName' AND value = '$pitem_name'";
        $qfr = executeAssoc1($qf);
        var_dump($pitem_name);
        echo '<br>';
        var_dump($qf);
        echo '<br>';
        var_dump($qfr);
    }

}

İşte bu kod bir döngü sırasında çıkışları ne parçasıdır:

string(37) "1 .New England (Northeast region)"
string(122) "SELECT * FROM possible_values WHERE table_id=3 AND col_name='DIVISION' AND value = '1 .New England (Northeast region)'"
bool(false)

Ben phpmyadmin SQL editörü içine sorgu kopyalarken Şimdi aslında bir sonuç çıkmıyor. here önerildiği gibi ben bile GİBİ "...%%" kullanarak denedim ama aynı şey (phpmyadmin php 0 satır döndürür, bir satır döndüren) olur.

4 Cevap

: Eğer tek tırnak yerine çift tırnak, ie kullanmanız gerekir

SELECT * FROM possible_values WHERE table_id=3 AND col_name='DIVISION' AND value = '1 .New England (Northeast region)'

Onlar tanımlayıcılar için kullanıldığı gibi (MySQL backtick kullanır gibi '`'), çift tırnak, SQL dizeleri için izin verilmez. MySQL bazı ayarlar ile dizeleri için onlara izin düşünüyorum, ama bunları kullanmak gerekir.

Teknik bir hata döndürmesi gerekir, bu yüzden o senin problemin olduğunu sanmıyorum.

Ne sorun olabilir sizin mysql sürümünü desteklemiyor olabilir eski mysql uzantısı kullanarak konum olmasıdır.

Bir yazım hatası olabilir, ama

table_id=$request

Bunun tırnak olmalıdır:

table_id='$request'