1

私はバックオフィスプロジェクトに取り組んでいます-最初にデータベースエントリの追加、更新、削除を実装しましたが、次にいくつかのデータ型に特定のアクションを実装する必要があります。したがって、データ型のみを取得したい$ fieldtypes = mysql_query( "SHOW FIELDS FROM mysqltable"); NULLを返します

現時点でのコードは次のとおりです。

<?php
$serveur='localhost'; 
$user='root'; 
$password='xxxx'; 
$base='db'; 
$champs=array(
"member"=>array("id","group","login","lastname","firstname","email","pswd","account","searchingfor","searchingfordistance","searchedfor","searchedfordistance","mydescription","groupdescription","searchdescription","resourcesdescription"),
    "place"=>array("id","idm","ids","name","town","postalcode","address","coord")
);

$connexion = mysql_connect("$serveur","$user","$password") or die ("Impossible de se connecter à la base de données");
mysql_select_db("$base",$connexion) or die("Erreur de connexion a la base de donnees");

$fieldtypes = mysql_query("SHOW FIELDS FROM place");

ob_start(); 
var_export($fieldtypes); 
$tab_debug=ob_get_contents(); 
ob_end_clean(); 
$fichier=fopen('gs.log','w'); 
fwrite($fichier,$tab_debug); 
fclose($fichier); 

... (rest of code works)

誰かが私が何が悪かったのかを見つけるのを手伝ってもらえますか?

ありがとう!

4

1 に答える 1

1

のようなメタデータクエリを使用するSHOW FIELDS場合でも、結果リソースから行をフェッチする必要があります。行を返す通常のクエリのように動作するため、whileいつものようにループでそれらをフェッチします。

$fields = array();
$fieldtypes = mysql_query("SHOW FIELDS FROM place");
if ($fieldtypes) {
  while ($row = mysql_fetch_assoc($fieldtypes)) {
    $fields[] = $row;
  }
}
ob_start(); 
// Dump your $fields array
var_export($fields); 
$tab_debug=ob_get_contents(); 
ob_end_clean(); 

ちなみに、変数が文字列内で補間されていない場合、変数を二重引用符で囲む必要はなく、冗長です。

// Don't quote these vars -- it's poor practice
$connexion = mysql_connect("$serveur","$user","$password")
于 2012-08-15T01:39:40.927 に答える