0
我正在通過我的代碼,我正在運行這麼多的查詢,它會變長。如果我只想用一個值存儲單個變量,我必須這樣做:PHP/MySQLi - 如何獲取一行的值並存儲在變量中?
switch($type) {
case "next":
if ($stmt = $mysqli->prepare("SELECT sort_order FROM user_slides WHERE user_id = ? AND sort_order > ? ORDER BY sort_order LIMIT 1")) {
$stmt->bind_param('is', $user_id, $sortId);
$stmt->execute();
$stmt->bind_result($next_sort_id);
$stmt->store_result();
$stmt->fetch();
return $next_sort_id;
$stmt->close();
}
break;
case "first":
if ($stmt = $mysqli->prepare("SELECT MIN(sort_order) as max_slides FROM user_slides WHERE user_id = ?")) {
$stmt->bind_param('i', $user_id);
$stmt->execute();
$stmt->bind_result($first_sort_id);
$stmt->store_result();
$stmt->fetch();
return $first_sort_id;
$stmt->close();
}
break;
case "last":
if ($stmt = $mysqli->prepare("SELECT MAX(sort_order) as max_slides FROM user_slides WHERE user_id = ?")) {
$stmt->bind_param('i', $user_id);
$stmt->execute();
$stmt->bind_result($last_sort_id);
$stmt->store_result();
$stmt->fetch();
return $last_sort_id;
$stmt->close();
}
break;
}
必須有一種更簡單的方法來完成此操作。在那裏我可以這樣做:
$first_sort_id = QUERY HERE
$last_sort_id = QUERY HERE
所以它不必這麼長,它可以很好,很短。
有誰知道我需要做什麼來完成?
感謝您的幫助!我編輯了我的答案,以包含整個switch語句。看到「下一個」案件與另外兩個案件有不同的查詢,我仍然可以讓你的答案工作嗎? – Drew 2012-01-03 03:30:32
如果您向右滾動,我的下一個查詢實際上比其他查詢具有更長的時間。實際上,我可能需要這個來做很多其他的查詢,我只需要返回一個值。有沒有更適用於任何事情的更通用的解決方案? – Drew 2012-01-03 03:41:25
@Drew好吧,在這種情況下,在每一個「案件」你必須把查詢,準備陳述和綁定。其他指令可以在切換後進行。 – 2012-01-03 03:43:29