私はslim-framework v2とphpを使用してjson outputs.Withを取得しています。このコードでは、この問題について説明しています。 mysqlテーブルはフォーマットが正しくないので変更できません。このような機能をこのようにしたのは、私が経験したことがないからです。 これを解決する最良の方法は何ですか?sqlコマンドで実行できるのであれば、メインループからこれらの関数を削除することができますか?ループ内の関数が悪いですか? ps:対象が間違っているかどうかを教えてください。エラー:クラスPDOのオブジェクトを文字列に変換できませんでした
テスト()顧客ID
function test($server, $user, $pass, $db) {
$result = array();
$sql = "SELECT cid from tasks where total!=0";
$db = newDB($server, $user, $pass, $db);
$stmt = $db->prepare($sql);
$stmt->execute();
foreach ($stmt as $v) {
$result[] = ['cid'=> $v['cid'], 'test'=> toGet($server, $user, $pass, $db, $v['cid']), 'test2'=> toGet2($server, $user, $pass, $db, $v['cid'])];
}
echo json_encode($result, JSON_FORCE_OBJECT);
}
およびその他の機能
function toGet($server, $user, $pass, $db, $id) {
$sql = "SELECT sum(`poso`) as posoe from `economics` where `custid`=:id and flag=0";
$db = newDB($server, $user, $pass, $db);
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM);
return $row[0];
}
function toGet2($server, $user, $pass, $db, $id) {
$sql = "SELECT sum(`poso`) as posoe from `economics` where `custid`=:id and flag=1";
$db = newDB($server, $user, $pass, $db);
$stmt = $db->prepare($sql);
$stmt->bindParam("id", $id);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_NUM);
return $row[0];
}
ためのメインループは、どうもありがとうございましたさ!
UPDATE:ErrorException コード: は(真の 'デバッグ'、)デバッグ$ APP->設定をオンに、最終的にはエラー タイプだ4096を メッセージ:クラスPDOのオブジェクトに変換することができませんでした文字列 ファイル:/var/www/api/newdb.php ライン:6
function newDB($host, $user, $pass, $db) {
$dbhost= $host;
$dbuser= $user;
$dbpass= $pass;
$dbname= $db;
$dbConnection = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$dbConnection->query('set names utf8');
return $dbConnection;
}
アップデート2:スリムconfに
include 'newdb.php';
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
$app = new \Slim\Slim();
$app->config('debug', true);
$app->response->setStatus(200);
$app->contentType('application/json; charset=utf-8');
$app->get('/test/:server/:user/:pass/:db', 'test');
$app->get('/', function() use($app) {
$app->response->setStatus(200);
echo "Welcome!";
});
$app->run();
うーん...何行はこのエラーを生成してデータを取り出すことができますか? – AbraCadaver
それは6行目です、私の質問が更新されました – UrL