PHP MySQL Hata

3 Cevap php

Php için yeni im kadar basit bir oturum açma ekranı için this tutorial takip etmeye karar verdi. Ben kodu kurulum var ama ben giriş çalıştığımda bu hatayı alıyorum:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in (a long file path to the script) on line 27

Ben öğretici var kodu:

<?php
ob_start();
$host="thehost"; // Host name
$username="myusername"; // Mysql username 
 $password="mypass"; // Mysql password 
 $db_name="test"; // Database name 
 $tbl_name="members"; // Table name

// Connect to server and select databse.
 mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
 mysql_select_db("$db_name")or die("cannot select DB");

// Define $myusername and $mypassword 
 $myusername=$_POST['myusername']; 
 $mypassword=$_POST['mypassword'];

// To protect MySQL injection (more detail about MySQL injection)
 $myusername = stripslashes($myusername);
 $mypassword = stripslashes($mypassword);
 $myusername = mysql_real_escape_string($myusername);
 $mypassword = mysql_real_escape_string($mypassword);

 $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
 $result=mysql_query($sql);

// Mysql_num_row is counting table row
 $count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

 if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
 session_register("myusername");
 session_register("mypassword"); 
 header("location:login_success.php");
}
 else {
 echo "Wrong Username or Password";
}

 ob_end_flush();
?>

(Not: MySQL veritabanı bilgi Bütün sürümü doldurulur)

Videoları, yazar PHP5 sürümü ve normal bir php versiyonunu verir. Ben de denedim ve aynı hatayı aldık. Bu oluyor yardım gerçekten takdir neden herkes bilir.

3 Cevap

Bu i PHP benim DB erişimini nasıl olduğunu:

$result=mysql_query($sql) or die ("bad sql query: ".mysql_error());

böylece SQL yanlış ise; Ben genellikle suçlu SQL fragmanı ile, kullanışlı bir hata alıyorum

Sen mysql_query() dan dönüşünü kontrol etmek gerekir; Eğer o amele kabul edemeyiz. Bu MySQL hata mesajı almak için FALSE, çağrı mysql_error() varsa

Sorun mysql_num_rows bir kaynak nesne beklediğini ancak hiçbir sonuç bulunursa, sadece boş olacak olmasıdır. Yerine arasındaki satırları bu şekilde sayma, sadece eğer $ sonucunu === boş edin.