を配列、あなたは二つのコレクションの単一のオブジェクトを分割している???理由はありません。はい。
ので、戻ってこれまで起こって、何をやるべきことは次のとおりです。
$items[$i]['var1']=$var1;
$items[$i]['var2']=$var2;
しかし、これは、もちろん、まだ非常に良いではありません。
正しい解決策は、あなたのmysqli結果を配列にマップする関数を用意して、何かクエリがあればそれを直接開始することができるようにすることです。ここにいくつかのデータベースがありますが、すべてが最新ではありません瞬間:私はこのように使用
function connectmysqldb($database,$host,$port,$user,$password){
global $conn;
$conn=mysqli_connect($host, $user, $password, $database,$port);
if (!$conn){
die('Error: Could not connect: ' . mysqli_connect_error());
}
return $conn;
}
function connectpgdb($database,$host,$port,$user,$password){
$connectString = 'host=' . $host . ' port=' . $port . ' dbname=' . $database . ' user=' . $user . ' password=' . $password;
$conn = pg_connect ($connectString);
if (!$conn)
{
die('Error: Could not connect: ' . pg_last_error());
}
return $conn;
}
function connectmssqldb($dbname,$host,$port,$uid,$pw){
$connectionOptions = array("UID"=>$uid,"PWD"=>$pw);
$conn = sqlsrv_connect($host, $connectionOptions);
if (!$conn)
{
die('Error: Could not connect: ' . print_r(sqlsrv_errors(), true));
}
return $conn;
}
function sqlec($query,$dbtype,$dbname,$host,$port,$uid,$pw){
switch($dbtype){
default:
$res="Database Type not Recognized : $dbtype";
break;
case "mysql":
global $conn;
if(!isset($conn)){
$conn=connectmysqldb($dbname,$host,$port,$uid,$pw);
}
$clone=mysqli_multi_query($conn,$query);
if(!$clone){
die('Error: ' . mysqli_error($conn));
}else{
$clonearray=array();
$i=0;
if ($clone = mysqli_store_result($conn)) {
while ($row = mysqli_fetch_assoc($clone)){
$clonearray[$i]=$row;
$i++;
}
mysqli_free_result($clone);
}
$res=$clonearray;
}
break;
case "postgres":
$conn=connectpgdb($dbname,$host,$port,$uid,$pw);
$clone=pg_query($conn,$query);
if (!$clone)
{
die('Error: ' . pg_last_error());
}else{
$clonearray=array();
$i=0;
while ($row = pg_fetch_row($clone))
{
$count = count($row);
$y = 0;
while ($y < $count)
{
$c_row = current($row);
$clonearray[$i][pg_field_name($clone,$y)] = $c_row;
next($row);
$y = $y + 1;
}
$i = $i + 1;
}
pg_free_result($clone);
pg_close($conn);
$res=$clonearray;
}
break;
case "mssql":
$conn=connectmssqldb($dbname,$host,$port,$uid,$pw);
$res=sqlsrv_query($conn,$query);
if (!$res)
{
die("Error in statement execution.\n".print_r(sqlsrv_errors(), true));
}else{
$i=0;
$sqlsarray=array();
while($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC))
{
if($i==0){
$arrk=array_keys($row);
}
$j=0;
while($j<count($arrk)){
$sqlsarray[$i][$arrk[$j]]=$row[$arrk[$j]];
$j++;
}
$i++;
}
$res=$sqlsarray;
}
break;
}
return $res;
}
function local_sqlec($query){
global $db_server;
global $db_db;
global $db_port;
global $db_username;
global $db_password;
return sqlec($query,"mysql",$db_db,$db_server,$db_port,$db_username,$db_password);
}
:
$r=local_sqlec("SELECT test1,test2 FROM test");
$i=0;
echo "last id =".($r[0]['test1'])."<br>";
echo "Row count =".($r[0]['test2'])."<br>";
while($i<$r[0]['test2']){
echo "inserted id =".($r[0]['test1']+$i)."<br>";
$i++;
}
アンディ、ありがとう。私はまた、ドキュメントやコメントを介して、上記のコードを試してみましたが、それは私のために動作しません。私の具体的な例に、上記のことがどのように当てはまるのかを説明できますか?私はこの周りに頭を下げるのに少し苦労して集まりました。ありがとう。 – CodeVirtuoso
使用しているPHPのバージョンは? – Andy
PHP 5.3と私は必要なものをインストールすることができますので、サーバー上の完全なコントロールを持っています。 – CodeVirtuoso