mysql数据库类中出现的问题
mysql
这是我的mysql类,继承至db抽象类,其中db的抽象方法在mysql中都以实现,db类:
abstract class db{
//连接数据库
abstract public function connect($h,$u,$p);
//发送查询
abstract public function query($sql);
//查询多行数据
abstract public function getAll($sql);
//查询单行数据
abstract public function getOne($sql);
//查询单个数据
abstract public function getRow($sql);
abstract public function autoExecute($arr,$table,$mode='insert ',$where='1 limit 1');
}
class mysql extends db{
private static $ins=null;
private $conn=null;
private $conf=array();
//读取数据库的配置信息
protected function __construct(){
$this->conf=conf::getIns();
$this->select_db($this->conf->db);
$this->connect($this->conf->host,$this->conf->user,$this->conf->pwd);//显示是空
$this->setChar($this->conf->char);
}
public function __destruct(){
}
//使用单例模式,只允许new一次
public static function getIns(){
if(self::$ins===null){
self::$ins=new self();
}
return self::$ins;
}
//连接,连接失败时,抛出异常
public function connect($h,$u,$p){
//没走到这一步
$this->conn=mysql_connect($h,$u,$p);
}
protected function select_db($db){
$sql='use '.$db;
$this->query($sql);
}
protected function setChar($char){
$sql='set names '.$char;
return $this->query($sql);
}
//发送数据
public function query($sql){
/*if($this->conf->debug){
log::write($sql);
}*/
/* var_dump($sql);
exit;*/
$rs=mysql_query($sql,$this->conn);
/*if(!rs){
log::write($this->error());
}*/
if(!$rs){
echo '失败
';
var_dump($this->conn);
echo '
';
var_dump($this->conf);
}
return $rs;
}
//自动进行计算
public function autoExecute($arr,$table,$mode='insert ',$where='1 limit 1'){
if(!is_array($arr)){
return false;
}//更新表中的数据
if($mode=='update'){
$sql='update '.$table.'set';
foreach($arr as $k=>$v){
$sql.=$k."='".$v."',";
}
$sql=rtrim($sql,',');
$sql.=$where;
return $this->query($sql);
}
$sql='insert into '.$table.'('.implode(',',array_keys($arr)).')';
$sql.='values(\'';
$sql.=implode("','",array_values($arr));
$sql.='\')';
return $this->query($sql);
}
//取出表中所有符合条件的多行数据
public function getAll($sql){
$rs=$this->query($sql);
$list=array();
while($row=mysql_fetch_assoc($rs)){
$list[]=$row;
}
return $list;
}
//取出符合条件的一行数据
public function getRow($sql){
$rs=$this->query($sql);
return mysql_fetch_assoc($rs);
}
//取出一个数据
public function getOne($sql){
$rs=$this->query($sql);
$row=mysql_fetch_assoc($rs);
return $row[0];
}
//取出影响的数据
public function affected_rows(){
return mysql_affected_rows($this->conn);
}
//插入一个id
public function insert_id(){
return mysql_insert_id($this->conn);
}
}
为什么会出现:Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
排查了很多错误,发现程程序没有走到
public function connect($h,$u,$p){
//没走到这一步
$this->conn=mysql_connect($h,$u,$p);
}
想不出什么原因
回复讨论(解决方案)
//读取数据库的配置信息
protected function __construct(){
你把构造函数指定成 保护模式
如何能被执行?

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Alipay PHP ...

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

시스템이 다시 시작된 후 UnixSocket의 권한을 자동으로 설정하는 방법. 시스템이 다시 시작될 때마다 UnixSocket의 권한을 수정하려면 다음 명령을 실행해야합니다.

기사는 PHP 5.3에 도입 된 PHP의 LSB (Late STATIC BING)에 대해 논의하여 정적 방법의 런타임 해상도가보다 유연한 상속을 요구할 수있게한다. LSB의 실제 응용 프로그램 및 잠재적 성능

PHP 개발에서 PHP의 CURL 라이브러리를 사용하여 JSON 데이터를 보내면 종종 외부 API와 상호 작용해야합니다. 일반적인 방법 중 하나는 컬 라이브러리를 사용하여 게시물을 보내는 것입니다 ...

기사는 입력 유효성 검사, 인증 및 정기 업데이트를 포함한 취약점을 방지하기 위해 프레임 워크의 필수 보안 기능을 논의합니다.

phpstorm에서 CLI 모드를 디버그하는 방법은 무엇입니까? PHPStorm으로 개발할 때 때때로 CLI (Command Line Interface) 모드에서 PHP를 디버그해야합니다 ...
