变量未定义和一个警告,找了很久也找不出来!求大神帮忙,谢谢! 本帖最后由 xuzuning 于 2014-03-06 10:16:20 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是因为你的$r是不存在的,在循环前加个判断条件if(isset($r) && !empty($r)){ while($arr = mysql_fetch_array($r)){ 1、你说的错误行号与代码不符,可能是贴错了代码2、就贴出的代码而言数据库连接应在条件分支外边查询指令也应在条件分支外边$link = mysql_connect("127.0.1.1","root","")or die("不能连接服务器!可能是数据库服务器没有开启,或用户名密码错误!".mysql_error());mysql_query("use db_leave");mysql_select_db("db_leave",$link);mysql_query("set names'utf8'");if($_POST && $_POST['submit']){ //如果是用户提交,则插入提交数据 $username =$_POST["username"]; $email = $_POST["email"]; $title = $_POST["title"]; $content = $_POST["content"]; $createtime = date("Y-m-d H:i:s"); $sql = "insert into l_text(id,username,email,title,content,createtime) values('','$username','$email','$title','$content','$createtime')"; $result = mysql_query($sql);} $r = mysql_query("select * from l_text"); //读取表数据 谢了,大神!!但是我还有点不明白,以前c中未声明声明一个就行,PHP中这种问题应该怎么解决!我是菜鸟,求大神帮忙! 放在里面的话,需要提交才有$r = mysql_query("select * from l_text"); 那么不提交的话$r不存在,while($arr = mysql_fetch_array($r)){ 这句就会报错。你自己运行一下就知道了。 C 语言中,变量必须先声明再使用(因为编译器需要分配内存)php 的变量不直接存储于内存地址,而存放于变量表中。所以可以使用未经声明的变量Notice 警告只是表示可能会出问题,但并不一定出问题数据库查询放在分支外面是为啥?因为你在条件分支内外都使用了数据库操作如果只放在条件分支内,就可能出问题 果然是大神,CSDN上面大神如云啊! 求一条MYSQL语句 88分~~网站新上线,大家帮帮忙瞧瞧网站有啥程序问题没?来者有分 php爱好者来啊! 点击一张图片,然后在一个固定的div里面显示网页内容,这应该怎么实现 问一个时间的增加或减少的问题。 寻梦的稻草人的文章居然被csdn收录了,进了资料,呵呵。 问问darkwing老兄,在php里如何重定向url 浏览器显示HTML文件的菜鸟问题 如何多维数组去重,根据变量值组合商品属性? javascript写的表单验证,当提示比如“请输入用户名”时,怎么让他自动定位到用户名表单 用soapclient 这个返回的数组是什么意思 php图片上传问题
if(isset($r) && !empty($r)){
while($arr = mysql_fetch_array($r)){
2、就贴出的代码而言
数据库连接应在条件分支外边
查询指令也应在条件分支外边$link = mysql_connect("127.0.1.1","root","")or die("不能连接服务器!可能是数据库服务器没有开启,或用户名密码错误!".mysql_error());
mysql_query("use db_leave");
mysql_select_db("db_leave",$link);
mysql_query("set names'utf8'");
if($_POST && $_POST['submit']){ //如果是用户提交,则插入提交数据
$username =$_POST["username"];
$email = $_POST["email"];
$title = $_POST["title"];
$content = $_POST["content"];
$createtime = date("Y-m-d H:i:s"); $sql = "insert into l_text(id,username,email,title,content,createtime) values('','$username','$email','$title','$content','$createtime')";
$result = mysql_query($sql);
}
$r = mysql_query("select * from l_text"); //读取表数据
那么不提交的话$r不存在,while($arr = mysql_fetch_array($r)){ 这句就会报错。
你自己运行一下就知道了。
php 的变量不直接存储于内存地址,而存放于变量表中。所以可以使用未经声明的变量
Notice 警告只是表示可能会出问题,但并不一定出问题数据库查询放在分支外面是为啥?
因为你在条件分支内外都使用了数据库操作
如果只放在条件分支内,就可能出问题