Ich bin heute beim Schreiben eines benutzerdefinierten MVC-Frameworks auf ein Problem gestoßen:
SQLSTATE[HY000]: Allgemeiner Fehler: Modus muss eine Ganzzahl sein
Fügen Sie den folgenden Code ein:
//这是报错位置的代码 public function dao_query($sql,$all = true){ try{ $stmt = $this->pdo->query($sql); //设置fetch_mode $stmt->setFetchMode($this->fetch_mode);//这里报错 //解析数据 if(!$all){ return $stmt->fetch(); }else{ return $stmt->fetchAll(); } }catch(PDOException $e){ $this->dao_exception($e); } }
Code-Eingabeaufforderung: Allgemeiner Fehler: Modus muss eine Ganzzahl sein , ich habe das Dokument noch einmal durchgesehen
PDOStatement::fetchAll([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] ) : array
Hier ist markiert, dass $fetch_style
vom Typ int
sein muss, und dann habe ich $this-> direkt geändert. fetch_mode
wurde direkt in PDO::FETCH_ASSOC
geändert und festgestellt, dass der Vorgang erfolgreich war. Später stellte ich fest, dass meine config
einen Zeichenfolgentyp gespeichert hatte: $fetch_style
必须为int
型,后来我直接将$this->fetch_mode
直接改成PDO::FETCH_ASSOC
,发现运行成功,后来翻到我的config
里面存储的竟然是个字符串类型:
'database'=>array( 'type'=>'mysql', 'host'=>'localhost', 'port'=>'3306', 'user'=>'root', 'pass'=>'root', 'charset'=>'utf8', 'dbname'=>'my_database', 'fetch_mode'=>'PDO::FETCH_ASSOC',//这里的问题 'prefix'=>'' ),
不过为了美观,我还是决定不改config
了,于是................:
$stmt->setFetchMode(constant($this->fetch_mode));//这里必须使用int $model constant($this->fetch_mode)
文档的解释:
constant ( string $name ) : mixed
通过 name
返回常量的值。
当你不知道常量名,却需要获取常量的值时,constant()
就很有用了。也就是常量名储存在一个变量里,或者由函数返回常量名。
返回常量的值。如果常量未定义则返回 NULL
rrreee
config
nicht zu ändern, also ............: rrreee >Name Gibt den Wert der Konstante zurück.
Wenn Sie den Namen der Konstante nicht kennen, aber den Wert der Konstante benötigen, istconstant()
sehr nützlich. Das heißt, der Konstantenname wird in einer Variablen gespeichert oder der Konstantenname wird von einer Funktion zurückgegeben. 🎜🎜Gibt den Wert der Konstante zurück. Gibt NULL
zurück, wenn die Konstante undefiniert ist. 🎜🎜Empfohlen: 🎜php-Video-Tutorial🎜🎜Das obige ist der detaillierte Inhalt vonDer Modus muss eine Ganzzahl sein, wenn PHP ausgeführt wird. Wie kann ich das Problem lösen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!