2016-09-16 1 views
-4

このエラーを修正したいと思います。PHPとPDOでこの警告「不正な文字列オフセット」を修正するにはどうすればよいですか?

$row = $statment->fetchColumn(); 
    ^---your column, a string 

$_SESSION['role'] = $row['role']; 
         ^^^^^^^^^^---treating your string as an array, with invalid index 
+2

ます:http://php.net/manual/en/pdostatement.fetchcolumn.php

この機能VALUE、ない配列を返します:私はRTMが

$username = $_POST['username']; $password = $_POST['password']; $statment = $con->prepare("select * from users where username = ? and password = ? limit 1"); $statment->execute(array($username,$password)); $count = $statment->rowCount(); $row = $statment->fetchColumn(); if($count > 0) { $_SESSION['username'] = $username; $_SESSION['password'] = $password; $_SESSION['role'] = $row['role']; echo 'User Name : '.$_SESSION['username'].' , Password : '.$_SESSION['password'].' , Role : '.$_SESSION['role']; } else { echo 'Failed To Login'; } 
Rizier123

+0

@Antono:それは必要ありません。バインド値を配列として実行呼び出しに渡すことができます。 –

+1

さらに、@Antono - これはmysqli_関数なので、PDOとは互換性がありません(タグ+関数で使用されている関数を参照)。 – Qirel

答えて

1

データベースの名前が役割であるという列を取得したいとセッションに入れて

多分あなたの完全なエラーメッセージを投稿したいと思うかもしれません。
+0

'fetch(PDO :: FETCH_ASSOC)'を使用してください。 – Barmar

関連する問題