MySQL parametre kaynak hatası

5 Cevap php

İşte benim hatadır:

Uyarı: mysql_query () parametre 2 kaynak, boş verilmiş olmasını bekliyor ...

Bu benim kod 23 satır ifade eder:

$result = mysql_query($sql, $connection)

Benim bütün sorgu kod şöyle görünür:

$query = "SELECT * from users WHERE userid='".intval( $_SESSION['SESS_USERID'] )."'"; 
                $result = mysql_query($query, $connection)
                or die ("Couldn't perform query $query <br />".mysql_error());

                $row = mysql_fetch_array($result);

Ben burada ne happpened bir ipucu yok. Ben yapmak istediğim benim web sayfası başlık bölümünde görüntülenebilir kullanıcıların tamadın 'bir değere sahip oldu. Yani denemek ve bunu başarmak için hemen sonra bu kodu çıktısı ediyorum:

echo 'Hello '; echo $row['fullname'];

Bu değişiklikten önce, ben tamadın oturum değişkeni $ _SESSION ['SESS_NAME'] yankılandı nerede, mükemmel bir çalışma vardı. Benim kullanıcı (onların adı da dahil) kendi bilgilerinizi güncelleyebilirsiniz Ancak, çünkü ben başlığında görüntülenen ad buna göre güncellenir ve oturum değeri göstermiyor istedim.

5 Cevap

Sizin $connection değişken NULL Bu hata iletisi atıfta ne olduğu.

Sebep olarak aramadın ki mysql_connect . Once called it will assign you a resource böylece boş olmayan varlık, $connection değişkene ayarlayabilirsiniz nerede.

Örnek olarak:

$connection = mysql_connect('localhost', 'mysql_user', 'mysql_password');
// now $connection has a resource that you can pass to mysql_query
$query = "SELECT * from users WHERE userid='".
                                         intval( $_SESSION['SESS_USERID'] )."'"; 
$result = mysql_query($query, $connection)

Örneğin sınıf dosyasında mysql bağlantıları, şunlardır:

bağlantıları / mysql.php

<?
$hostname_MySQL = "localhost";
$database_MySQL = "database";
$username_MySQL = "user";
$password_MySQL = "password";

$MySQL = mysql_pconnect($hostname_MySQL, $username_MySQL, $password_MySQL) or trigger_error(mysql_error(),E_USER_ERROR); 
mysql_select_db($database_MySQL,$MySQL);
?>

class.php

<?
include "Connections/MySQL.php";
class utils {
    public function myFunction()
        {
        global $MySQL;
        $sql =  "select * from table"; 
        $rs = mysql_query($sql, $MySQL) or die(mysql_error());
        $filas = mysql_fetch_assoc($rs);
        $totalFilas = mysql_num_rows($rs);
        ...
        }
    }
?>

Bunu yapmanın iki yolu var, size bir şey geçemiyor, eğer arzu mysql_query bu geçebilir, mysql_connect veritabanına bağlanmak için kullanmanız gerekir { [(1)]} PHP mysql_connect açılan son bağlantı kullanır

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

$sql = "SELECT id as userid, fullname, userstatus 
        FROM   sometable
        WHERE  userstatus = 1";

$result = mysql_query($sql);

Eğer veritabanına bağlı mı? Eğer öyleyse bu kodu da göstermek lütfen.

Şimdilik, sadece bu gibi $connection değişkeni çıkarmayı deneyin:

$result = mysql_query($query);

Sizi alır nerede ve görmek.

$ Bağlantı veritabanı bağlantısı kaynak id değeri atanır. Lütfen komut o yok, bu yüzden $ bağlantı değeri NULL ve hatayı alıyorsanız neden olmasıdır. Sen mysql_query () kullanmadan önce veritabanına bağlanmak gerekir. Ondan sonra tamam olmalıdır.

Yapmanız gereken:

$connection=mysql_connect('host','user','pass');
if($connection === false) {
 echo "Error in connection mysql_error()";
}