关于PHP增删改查里面遇到的Mysql数组调用值为null的问题

来源:互联网 发布:warframe下载缓存优化 编辑:程序博客网 时间:2024/06/05 20:40

在增删该查里面遇到如题问题

原始Mysql的链接代码,封装成link_mysql函数,代码如下:

function link_mysql(){$user = "root";$password = "";$host = "127.0.0.1";$link = mysql_connect($host,$user,$password);if(!$link){die('could not connect:'.mysql_error());}mysql_select_db("mb",$link);$sql = "select * from post limit 1";$res = mysql_query($sql);}link_mysql();

原始operation界面代码如下:

require_once'link_mysql.php';if($row = mysql_fetch_array($res)){echo '<tr>'; echo '<td><a href="?read='.$row['id'].'">'.$row['title'].'</a></td>';echo '<td>'.date('Y-m-d H:i:s',$row['create_time']).'</td>';echo '<td><a href="?edit='.$row['id'].'">编辑</a> <a href="?delete='.$row['id'].'">删除</a></td>'; echo '</tr>';

operation界面得到警告:

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in/Users/lujunjie/projects/messageboard/operation.php on line10

原因总结:原因来自我重新定义了一个新的函数“link_mysql()”,

里面的代码内容如下:

<?php <?php  function link_mysql(){$user = "root"; $password = "";$host = "127.0.0.1";$link = mysql_connect($host,$user,$password);mysql_select_db(test);$res = mysql_query("select * from post",$link);} link_mysql();?>

这样做的最初的目的是为了后面的修改和使用,这样的话就只需要改一个文件,每次连接mysql的时候只要一句require_once,但是问题就来了,这个文件里面使用到的变量,本身是在函数里面的,使用一次以后就自动关闭了,所以在之后的使用当中,虽然成功连接了数据库,但是无法正常mysql_fetch_array();按道理来讲最彻底的解决方案是需要定义全局变量,但在这里使用比较简单的解决方法,在$res后面把$res return给调用者,那么在新的php文件里面link_mysql()这个函数就相当于return的值,所以只要重新定义一个变量就行。

在新的php文件里面使用如下代码:

$res = link_mysql();