外部のsqlデータベースから従業員リストを取得しようとしています。これは通常のPHPページを使用して取得していますが、これがうまくいくかどうか。sqlsrv_query外部データベースを使用してCodIgniterでforeachを使用してオフセットされた不正な文字列
私のcontroller.phpはこのように見えます。
class Patients extends CI_Controller {
function index() {
$data['title'] = 'Patients';
$data['patients'] = $this->Patients_model->get_patients();
$this->load->view('templates/header');
$this->load->view('patients/index', $data);
$this->load->view('templates/footer');
print_r($data);
}
私はそれが正しく出力して、私は以下の配列データを取得しなかったかどうかを確認するためにprint_r($data)
を置くが、私のsqlsrv_queryとにかく、トップ30を宣言して以来は、単一のデータを返す以来の奇妙な。
Array ([title] => Patients [patients] => Array ([employee_i] => 3321 [first_name] => Zyriel [last_name] => Tanawan [labor_clas] => SD [current_de] => WORKSHOP - L.A [date_emplo] => 2016-04-06 00:00:00 [pay_code] => 06 [cost_cente] => 7723 [file_statu] => EMPLOYEE [middle_nam] => Martinez [vacation_l] => 11.0000 [sick_leave] => 0.0000 [line_code] => Facilities Workshop - Laguna [gender] => M [approver_1] => 950812 [approver_2] => 220364 [approver_3] => 940016 [leave_as_o] => 2017-05-19 00:00:00 [section_ma] => [rest_day1] => Sun [rest_day2] => [Current_po] => Machinist [Station] => Laguna))
これは私のモデルです.phpのようです。
class Patients_model extends CI_Model
{
public function get_patients(){
$serverName = "MYSERVERNAME"; //serverName\instanceName
$connectionInfo = array("Database"=>"MYDATABASE", "UID"=>"USERID", "PWD"=>'MYPASSWORD');
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
$sql = "SELECT top 30 * from empmas ORDER BY first_name DESC";
$stmt = sqlsrv_query($conn, $sql);
if($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
return sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
}
}
私のview.php
<?php foreach ($patients as $rows) :?>
<p><?php echo $rows['employee_i'];?></p><br/>
<?php endforeach;?>
に今
しかし、私は
A PHPのエラーが発生しました
重大度以下のエラーが出ます:
警告メッセージ:不正な文字列オフセット 'employee_i'
私はすでに他の類似の質問からいくつかの回答を試みましたが、あなたが使用しているときには違って見えるsqlsrv_query
助言が助けになるでしょう!ありがとう!
'$のpatients'の値が何であるのに使用する必要がありますか?それは '$ data'か' $ data ['patients'] 'ですか?また、 'sqlsrv_fetch_array'はすべての行ではなく、次の行をフェッチします。その結果、おそらく1行の結果しか得られないのでしょう。 – ImClarky