mysql php 数据库连接 查询
代码如下,求帮忙看一下吧!
getconn(); } public function getconn(){ $db = require_once 'config/config.php'; $this->dbhost = $db['dbhost']; $this->dbuser = $db['dbuser']; $this->dbpsw = $db['dbpsw']; $this->dbchar = $db['dbchar']; $this->dbname = $db['dbname']; $this->tablepre = $db['tablepre']; $this->conn = mysql_connect($this->dbhost,$this->dbuser,$this->dbpsw) or die(mysql_error().
mysql连接失败!); mysql_select_db($this->dbname,$this->conn) or die(mysql_error().
数据库访问出错); mysql_query(set names .$this->dbchar,$this->conn); } /** * 执行sql */ public function query($sql){ return mysql_query($sql,$this->conn) or die(mysql_error().
sql执行出错:$sql); } /** * 返回多条记录 */ public function getdataarrays($sql,$type = mysql_both){ $result = $this->query($sql); $refarr = array(); while ($row = mysql_fetch_array($result,$type)){ $refarr[] = $row; } return $refarr; } /** * 关闭数据库链接 */ public function closeconn(){ mysql_close($this->conn); }}
调用如下:
$conn = new conn();$sql = select * from qj_content;$contentlist = $conn->getdataarrays($sql,mysql_assoc);$conn->closeconn();
执行结果如下:
warning: mysql_fetch_array(): supplied argument is not a valid mysql result resource in d:\appserv\www\qjcentury\conn.php on line 45
第45行代码在上面用红色标注了
回复讨论(解决方案) 那块用红色标注的被弄成php代码了,我晕
是/**
* 返回多条记录
*/
public function getdataarrays($sql,$type = mysql_both){
$result = $this->query($sql);
$refarr = array();
while ($row = mysql_fetch_array($result,$type)){
$refarr[] = $row;
}
return $refarr;
}
怎么都没有人来?
几次提问 不论简单还是困难都没有人来帮帮解答一下,
csdn什么时候变得这么冷清了?
估计sql 出问题了
在while 上 echo mysql_error(); 看看
lz看看w3c上面的例子吧
语法
mysql_fetch_array(data,array_type)
参数 描述
data 可选。规定要使用的数据指针。该数据指针是 mysql_query() 函数产生的结果。
array_type
可选。规定返回哪种结果。可能的值:
mysql_assoc - 关联数组
mysql_num - 数字数组
mysql_both - 默认。同时产生关联和数字数组
query 方法改成这样 public function query($sql){ $rs = mysql_query($sql,$this->conn) or die(mysql_error().
sql执行出错:$sql); return $rs; }
因为 mysql_query($sql,$this->conn) or die(mysql_error().
sql执行出错:$sql)
是一个逻辑表达式,直接返回的话只能是逻辑值。
所以要写作
$rs = mysql_query($sql,$this->conn) or die(mysql_error().
sql执行出错:$sql);
因为 = 的优先级高于 or 所以 $rs = mysql_query($sql,$this->conn) 被先执行
算式变为
$rs or die(mysql_error().
sql执行出错:$sql);
当然还是逻辑表达式啦,但其结果被抛弃了