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

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

原始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 line 10

原因总结:原因来自我重新定义了一个新的函数“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();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值