php / mySQL错误:mysql_num_rows():提供的参数不是有效的MySQL结果

时间:2010-06-09 17:16:42

标签: php mysql

我正在尝试插入一个mySQL数据库,我收到了这个错误:

if (mysql_num_rows($login) == 1){

这是php,php确实将用户添加到数据库中。我无法理解。

<?
session_start();
require("config.php");

$u = $_GET['username'];
$pw = $_GET['password'];
$pwh = $_GET['passwordhint'];
$em = $_GET['email'];
$zc = $_GET['zipcode'];


$check = "INSERT INTO family (loginName, email, password, passwordhint, location) VALUES ('$u', '$pw', '$pwh', '$em', '$zc')";


$login = mysql_query($check, $link) or die(mysql_error());


if (mysql_num_rows($login) == 1) {
$row = mysql_fetch_assoc($login);
echo 'Yes';exit;


} else {
echo 'No';exit;
}

mysql_close($link);
?>

谢谢,

2 个答案:

答案 0 :(得分:4)

您正在进行INSERT查询,因此$login不会包含任何结果集,而是truefalse

所以不要这样:

if (mysql_num_rows($login) == 1) {

你可以这样做:

if (mysql_affected_rows($link) == 1) {

或者这个:

if ($login == true) {

此外,您不再需要此行:

$row = mysql_fetch_assoc($login);

与您的问题无关,但在执行SQL查询时要记住这一点非常重要:在插入之前,您需要使用mysql_real_escape_string()转义所有$_GET数据,以防止{{ 3}}

答案 1 :(得分:0)

对于INSERT,UPDATE,DELETE,DROP ......

mysql_query()返回True / False