構造:
CREATE TABLE `links` (
`id` int(11) NOT NULL auto_increment,
`title` int(11) default NULL,
`url` varchar(200) NOT NULL,
`seourl` varchar(150) default NULL,
`linkset` varchar(50) NOT NULL default 'main',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
ここで奇妙な問題が発生しています。クエリDESCRIBE links
は最初の行 ( id
) のみを返します。
// my query...
$data = $db->query('DESCRIBE `links`')->fetch();
// query function
public function query($sql, $id = false){
$this->query_id = mysqli_query($this->connection, $sql);
if(!$this->query_id){
psyo::error("Error while executing query (sql: {$sql}).");
return NULL;
}else{
$this->result = mysqli_store_result($this->connection);
$this->affected = mysqli_affected_rows($this->connection);
return $id ? $this->query_id : $this;
}
}
// fetch function
public function fetch($query_id = NULL){
if($query_id)
$this->query_id = $query_id;
if($this->query_id){
$data = mysqli_fetch_assoc($this->query_id);
}else{
psyo::error("Error while fetching results (query id: {$this->query_id}).");
}
$this->free();
return $data;
}
// connection set by
public function connect(){
$this->connection = mysqli_connect($this->server, $this->username, $this->password, $this->database);
if(!$this->connection){
psyo::error("Error connecting to server or while selecting database (database: {$this->database}).");
}
}
したがって、これらはクラスから取り出した私の関数です(さらに必要かどうかを尋ねます...)、はい、実行されたクエリは最初の行のみを返しますが、この場合$this->affected
は正しい値を返します。5
phpMyAdmin 内でクエリを実行すると、予想される結果が返されます。
何が問題なのですか?