test_config
というデータベーステーブルが2列あり、名前は&です。 各行をループして、名前と値のから$variables
を作成して、それをPHPファイルで使用することができます。 最初の行は、名前列にabc、値columbに123があるため、作成可能な値は$abc = 123;
データベースからのPHP変数
となります。
ありがとうございました。
test_config
というデータベーステーブルが2列あり、名前は&です。 各行をループして、名前と値のから$variables
を作成して、それをPHPファイルで使用することができます。 最初の行は、名前列にabc、値columbに123があるため、作成可能な値は$abc = 123;
データベースからのPHP変数
となります。
ありがとうございました。
私は解決策を見つけました。
try {
$conn = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME."", DB_USERNAME, DB_PASSWORD);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT Name, Value FROM test_config");
$stmt->setFetchMode(PDO::FETCH_KEY_PAIR);
$stmt->execute();
$array = $stmt->fetchAll();
//var_dump($array);
extract($array);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
$conn = null;
それから私は
echo "The first row variable is $abc</br>";
名前ごとに変数を作成したかったとお伝えしました。もし私があなただったら、私はJeroenが言ったように、それを配列に入れるでしょう。これは、次の操作を実行することによって達成することができます。
$host = "localhost";
$user = "username";
$pass = "password";
$dbname = "myDB";
$conn = new mysqli($host, $user, $pass, $dbname);
if ($conn->connect_error) {
die("ERROR: " . $conn->connect_error);
}
$query = "SELECT name FROM table";
$name = $conn->query($query);
$query2 = "SELECT value FROM table";
$value = $conn->query($query2);
OPの質問には答えません。 – jeroen
申し訳ありませんが、それぞれの名前に変数が必要だとは読めませんでしたが、この方法は優れています。配列に配置する方が効率的です –
は、あなたがこのようにデータベースから配列を持っていると仮定 -
$foo = array('first' => '1st',
'second' => '2nd',
'third' => '3rd');
あなたのように出力したい - あなたはextract()
機能
$first = '1st';
$second = '2nd';
$third = '3rd';
<?php extract($foo); ?>
リファレンス - あなたはそれらの値を持つ変数として列を設定した抽出物を()を使用することができ、データベースの行を反復処理するあなたのループ内Create new variables from array keys in PHP
。
while ($databaseROW = mysql_fetch_assoc($result))
{
extract($databaseROW);
//rest of code from here down can now use variables
//you have columns Name & Value
//so now $Name & $Value variables are available
//$Name = "value from column Name for this $databaseROW";
//$Value = "value from column Value for this $databaseROW";
}
でそれをテストする方法ですが、はい、あなたの変数
$arr = array();
while($row = $query->fetch_array()){
$arr['name'=>$row['name'], 'value'=>$row['value']];
}
に名前を付けることなく、その、しかし、あなたはおそらくだけではなく、配列を使用する必要があります。 – jeroen
このようなものが欲しいかもしれません - http://stackoverflow.com/questions/4916510/create-new-variables-from-array-keys-in-php –