실제로 뭔가 붙어 있습니다. 나는 데이터베이스를 업데이트하려고 노력하고 코드가 작성된 것처럼 보입니다 - 그리고 그것을 반향하여 phpMyAdmin에 직접 붙여 넣으면 완벽하게 작동합니다 -하지만 코드 자체는 작동하지 않습니다 ... 지금까지 하루를 보내고 있습니다. 그것이 작동하지 않는 이유를 파악하고 난sql 문은 phpMyAdmin에서 작동하지만 mysql_query에서는 작동하지 않습니다.
function restoreSession()
{
mysql_connect("theHost", "root", "rootPWD") or die(mysql_error());
mysql_select_db("myDatabase") or die(mysql_error());
$restore_cmd = 'UPDATE wp_dor_cart66_sessions SET user_data = (SELECT user_data FROM wp_dor_cart66_stored_sessions WHERE ip_address = "' . $_SERVER['REMOTE_ADDR'] . '")';
$clean_up = "DELETE FROM `wp_dor_cart66_sessions` WHERE `ip_address` = \"" . $_SERVER['REMOTE_ADDR'] . "\" AND id NOT IN (SELECT id FROM (SELECT id FROM `wp_dor_cart66_sessions` ORDER BY id DESC LIMIT 1) user_data)";
mysql_query($clean_up) or die('Query failed: ' . mysql_error());
$result = mysql_query($restore_cmd) or die('Query failed: ' . mysql_error());
echo "<br/>";
echo $restore_cmd;
echo "<br/>";
var_dump($result);
echo "<br/>";
print_r($result);
}
결과 출력의 모습 ... 아이디어에서 완전히 해요 :
UPDATE wp_dor_cart66_sessions SET user_data =
(SELECT user_data FROM wp_dor_cart66_stored_sessions
WHERE ip_address = "196.54.110.24");
bool(true)
1
어떤 오류가 표시되지 않습니다 -하지만 그냥 업데이트 할 수 없습니다. phpMyAdmin에서 작동하지 않는다면 SQL에 문제가 있다는 것을 알 수 있습니다.하지만 제대로 된 것 같습니다 ... 저는 아이디어가 정말 부족합니다. 도움을 주시면 대단히 감사하겠습니다! 여기
일부 서식이 다시 문입니다 필요
$restore_cmd = '
UPDATE
wp_dor_cart66_sessions
SET
user_data = (
SELECT
user_data
FROM
wp_dor_cart66_stored_sessions
WHERE
ip_address = "' . $_SERVER['REMOTE_ADDR'] . '"
)
';
$clean_up = "
DELETE FROM
`wp_dor_cart66_sessions`
WHERE
`ip_address` = \"" . $_SERVER['REMOTE_ADDR'] . "\"
AND id NOT IN (
SELECT
id
FROM
(
SELECT
id
FROM
`wp_dor_cart66_sessions`
ORDER BY
id DESC
LIMIT
1
) user_data
)
";
나 혼자만해도 좋을지 모르지만 두 번째 쿼리 (삭제 ... 안 ...)가 어떻게 작동할까요? – VolkerK
감사합니다. 그 서식은 읽기가 훨씬 쉽습니다. delete 문이 작동하는 방식은 특정 IP 주소를 가진 모든 세션을 선택한 다음 선택 항목에없는 모든 항목을 삭제한다는 것입니다. 선택 항목에는 한도가 있습니다. 따라서 가장 최근 레코드를 제외한 모든 항목이 삭제됩니다. 내가 몇 번 삭제를 테스트하고 지금까지 작동했습니다 ... – Brendan
하지만 내부 선택 어떻게 든 IP 주소 (예 : ip = remote_addr에 대한 그룹 현명한 최대 선택)와 관련해서는 안됩니까? 지금은 그렇지 않습니다. 항상 wp_dor_cart66_sessions에서 _all_ 레코드 중 가장 높은 ID를 선택합니다. – VolkerK