查看: 1134|回复: 6
|
遇到解决不了的问题。
[复制链接]
|
|
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\demoweb\demo.php on line 29
这是什么意思呢?有大大可以教下吗?
|
|
|
|
|
|
|
|
发表于 13-10-2014 01:42 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 13-10-2014 10:11 PM
|
显示全部楼层
老兄,
做為, 初學者.
可以, 將勤補拙
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\demoweb\demo.php on line 29
告訴 了你, 第29 行出問題 .
你可以把你的第1 到 第29 行搬出來
反正大家看得懂的, 又想回答你的, 都會回答你.
或是像以上, 這位仁兄, 叫你去找GOOGLE , 就找到答案了.
你代碼, 目前是沒有人會抄你的, 放心.
第29 行也不是很多東東.
如果, 你第一行的英文, 不懂是說什麼,
你可以用中国的 百度, 來搜一下
|
|
|
|
|
|
|
|
楼主 |
发表于 14-10-2014 10:43 AM
|
显示全部楼层
GoodMorning 发表于 13-10-2014 10:11 PM
老兄,
做為, 初學者.
可以, 將勤補拙
<?php include( "./inc/header.inc.php" );?>
<?php
$reg = @$_POST['reg'];
//declaring variables to prevent errors
$fn = ""; //First Name
$ln = ""; //Last Name
$un = ""; //Username
$em = ""; //Email
$em2 = ""; //Email 2
$pswd = ""; //Password
$pswd2 = ""; // Password 2
$d = ""; // Sign up Date
$u_check = ""; // Check if username exists
//registration form
$fn = strip_tags(@$_POST['fname']);
$ln = strip_tags(@$_POST['lname']);
$un = strip_tags(@$_POST['username']);
$em = strip_tags(@$_POST['email']);
$em2 = strip_tags(@$_POST['email2']);
$pswd = strip_tags(@$_POST['password']);
$pswd2 = strip_tags(@$_POST['password2']);
$d = date("Y-m-d"); // Year - Month - Day
if ($reg) {
if ($em==$em2) {
// Check if user already exists
$u_check = mysql_query("SELECT username FROM users WHERE username='$un'");
// Count the amount of rows where username = $un
$check = mysql_num_rows($u_check);
|
|
|
|
|
|
|
|
发表于 14-10-2014 11:33 AM
|
显示全部楼层
唉, 你真的, 就是代碼貼上, 找都不找答案
那我給你多一個代碼
你看你少了什麼
<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * FROM person";
$result = mysql_query($sql,$con);
echo mysql_num_rows($result);
mysql_close($con);
?>
由www.w3schools.com/php/func_mysql_num_rows.asp
自己去分別一下.
我當初做的時候, 也多希望有一個人給我一個正確 的範例.
|
|
|
|
|
|
|
|
发表于 17-10-2014 02:07 AM
|
显示全部楼层
学php有几个重点,重点明白之后就好像打通“任督二脉”一样什么都可以自己摸索了,只是时间的问题
第一要懂用- exit(var_dump($u_check));
复制代码 如果数据太多就- echo '<pre>';
- exit(var_dump($u_check));
复制代码 第二要尝试了解你dump了什么出来,本来应该是什么,现在为什么是这样
第三要了解 什么是 function
第四要了解 什么是 class
这四个懂了之后就出现什么error都可以慢慢找出原因了,当然懂了这4样基本中的基本就慢慢学更多进阶的东西咯 本帖最后由 vronn12345 于 17-10-2014 02:08 AM 编辑
|
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 17-10-2014 09:46 AM
|
显示全部楼层
- Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\demoweb\demo.php on line 29
复制代码 这行的意思是, 你在第29行, 也就是- $check = mysql_num_rows($u_check);
复制代码 出现了问题
具体的问题是, 你的 $u_check里面是boolen值, 而执行mysql_num_rows() 传进去的变数必须是 resource
也就是说你在执行这行的时候- $u_check = mysql_query("SELECT username FROM users WHERE username='$un'");
复制代码 就已经出现错误
有两个可能,
1) 你的select 语法读回来是空值,
2) 你的select 语法错误了
具体要怎样处理?
- // Check if user already exists
- $u_check = mysql_query("SELECT username FROM users WHERE username='$un'");
- // Count the amount of rows where username = $un
- $check = mysql_num_rows($u_check);
复制代码 修改成
- // Check if user already exists
- unset($SQL,$u_check);
- //Set the sql querry
- $SQL="SELECT username FROM users WHERE username='$un'";
- //test and debug use
- echo $SQL;
- //run the query
- $u_check = mysql_query($SQL);
- // Count the amount of rows where username = $un
- $check = mysql_num_rows($u_check);
复制代码 这样你执行的过程中, 会把你的query output 出来, 你在output 出来的query copy 下来,在贴到 phpmyadmin/navicat/mysqlgui 这类的db 界面去执行看下什么结果.
如果是第2个问题(语法错误), 根据db 给你的指示进行修改.
如果是第一个问题(回传空值), 你的程式就要改成这样
- // Check if user already exists
- unset($SQL,$u_check);
- //Set the sql querry
- $SQL="SELECT username FROM users WHERE username='$un'";
- //test and debug use
- echo $SQL;
- //run the query
- $u_check = mysql_query($SQL);
- // Count the amount of rows where username = $un
- if(is_rerousce($u_check))
- {
- $check = mysql_num_rows($u_check);
- }
- else
- {
- echo "Invalid Username";
- }
复制代码 也就是说执行 mysql_num_rows之前先判定执行结果是不是resource
这样就能避免掉 fatal error 了
往后你写很多code, 包括 mysql_fetch_assoc, mysql_num_rows, mysql_fetch_array等最好都先进行 is_resource的判断, 这样就能避免掉无谓的fatal error 或 warrning.
加油. |
评分
-
查看全部评分
|
|
|
|
|
|
| |
本周最热论坛帖子
|