dongzi3805 2013-01-18 06:03
浏览 24

如何修复错误“mysql_num_rows():提供的参数不是第27和35行的register2.php中的有效MySQL结果资源”

This my register.php codes where a user register. As i click my 'Register' submit button ive got those sql errors and i cant proceed to where my header location is which is voting2.php... pls help.

<?php session_start(); ?>
<?php  
require('connect/connect.php');
if(isset($_POST['submit'])){
$password1=$_POST['password1'];
$password2=$_POST['password2'];

if ($password1 == $password2) {
    $studid = mysql_escape_string ($_POST['studid']);
    $password1= mysql_escape_string ($password1);
    $password2= mysql_escape_string ($password2);
    $fname= mysql_escape_string($_POST['fname']);
    $lname= mysql_escape_string ($_POST['lname']);
    $mname= mysql_escape_string ($_POST['mname']);
    $dob= mysql_escape_string ($_POST['dob']);
    $address= mysql_escape_string ($_POST['address']);
    $f_fname= mysql_escape_string($_POST['f_fname']);
    $f_lname= mysql_escape_string($_POST['f_lname']);
    $f_mname= mysql_escape_string($_POST['f_mname']);
    $m_fname= mysql_escape_string($_POST['m_fname']);
    $m_lname= mysql_escape_string($_POST['m_lname']);
    $m_mname= mysql_escape_string ($_POST['m_mname']);

    $sql1 = "SELECT * FROM `new_reg_student` WHERE `password` = '". $password1 ."' AND `studid` = '". $studid ."'";

            //this is my line 27 error
    if (mysql_num_rows ($sql1) == 1) {
        echo "Password & Student ID already exists.";
    exit();
    } 

    $sql3 = "INSERT INTO `new_reg_student` (`id`, `studid`, `password`, `fname`, `lname`, `mname`, `dob`, `address`, `f_fname`, `f_mname`, `f_lname`, `m_fname`, `m_mname`, `m_lname`) VALUES (NULL, '$studid', '$password1', '$fname', '$lname', '$mname', '$dob', '$address', '$f_fname', '$f_mname', '$f_lname', '$m_fname', '$m_mname', '$m_lname')" ;
    $result = mysql_query($sql3) or die (mysql_error()) ;

        //this is my line 35 error
        if(mysql_num_rows($result) > 0) {
    header("Location: voting2.php");
    exit();
    } else {
        echo " ";
        exit();
        }
    }
    else {
        echo " Sorry password do not match";
        exit(); 
        }
        }
    ?>

this the body content of my register.php

     <h2>Please Register Using The Form Below</h2>
<fieldset><legend><h1>Student Info</h1></legend>
<table>
<tr>
<td height="500">
<form id="regform" method="post" action="register2.php"> 
<ul>
<li><label>Student ID:</label><br />
    <div id="txtbox"><input type="text" id="" name="studid" readonly="readonly" value="<?php echo $_SESSION['username']; ?>" /></div>
        </li>
        <li><label>Password:</label><br />
        <div id="txtbox"><input type="password" id="password1" name="password1" /></div>
        </li>
        <li><label>Confirm Password:</label><br />
        <div id="txtbox"><input  type="password" id="password2" name="password2" /></div>
        </li>
        <li><label>Name:</label><br />
        <div id="txtbox"><input value="Fist Name" type="text" name="fname"/> - <input value="Middle Name"  type="text" name="mname"/> - <input value="Last Name" type="text" name="lname"/></div>
        </li>
        <li><label>Date of Birth:</label><br />
        <div id="txtbox"><input  type="text" name="dob" value="Year-Month-Day" /> - ex. 2013-12-01</div>
        </li>   
        </li><li><label>Address:</label><br />
        <div id="txtbox">
          <input  type="text" name="address" />
        </div>
        </li>
        <li><label>Your Father's Name:</label><br />
        <div id="txtbox"><input value="Fist Name" type="text" name="f_fname"/> - <input value="Middle Name"  type="text" name="f_mname"/> - <input value="Last Name" type="text" name="f_lname"/></div>
        </li>

        <li><label>Your Mother's Name:</label><br />
        <div id="txtbox"><input value="Fist Name" type="text" name="m_fname"/> - <input value="Middle Name"  type="text" name="m_mname"/> - <input value="Last Name" type="text" name="m_lname"/></div>
        </li>
    </ul>
    <p id="wa"><input type="submit" id="submit" value="Register" name="submit"/></p>
    </form> 
    </table>
    <p id="helper"></p>
    </td></fielset> 
    </div>
  • 写回答

1条回答 默认 最新

  • dongruo4601 2013-01-18 06:05
    关注

    Change

     $sql1 = "SELECT * FROM `new_reg_student` 
              WHERE `password` = '". $password1 ."'
              AND `studid` = '". $studid ."'";
    

    to

     $sql1 = mysql_query("SELECT * FROM `new_reg_student`
             WHERE `password` = '". $password1 ."'
             AND `studid` = '". $studid ."'");
    

    On a sidenote, please stop using mysql_* functions. More info here

    Regarding the error on line 35, mysql_num_rows() is used for SELECT statements. For INSERT OR UPDATE OR DELETE statements, use mysql_affected_rows()

    评论

报告相同问题?