Удаление элемента скрипта ничего не делает. Если вы каким-то образом можете получить доступ к элементу скрипта, он был выполнен давно, и его удаление не будет иметь никакого эффекта.
Поэтому нам нужно обойти это. Если ваш элемент сценария находится в верхней части страницы:
<head>
<script src="yourscript.js"></script>
Вы можете сделать синхронный запрос ajax на одну и ту же страницу, чтобы вы могли анализировать его содержимое в новый документ, изменять весь скрипт теги, а затем заменить текущий документ на измененный документ.
var xhr = new XMLHttpRequest,
content,
doc,
scripts;
xhr.open( "GET", document.URL, false );
xhr.send(null);
content = xhr.responseText;
doc = document.implementation.createHTMLDocument(""+(document.title || ""));
doc.open();
doc.write(content);
doc.close();
scripts = doc.getElementsByTagName("script");
//Modify scripts as you please
[].forEach.call( scripts, function( script ) {
script.removeAttribute("src");
script.innerHTML = 'alert("hello world");';
});
//Doing this will activate all the modified scripts and the "old page" will be gone as the document is replaced
document.replaceChild( document.importNode(doc.documentElement, true), document.documentElement);
К сожалению, это невозможно установить в jsfiddle или jsbin. Но вы должны иметь возможность скопировать этот код точно так же, как на консоль этой страницы в google chrome. Вы должны увидеть предупреждения, и когда вы проверите живое dom, каждый скрипт был изменен.
Разница заключается в том, что мы запускаем это после того, как скрипты были выполнены на странице, поэтому старые сценарии все равно должны иметь рабочий эффект на странице. Вот почему для этого вам нужно быть первым скриптом на странице, чтобы сделать это.
Протестировано для работы в google chrome. По какой-то причине Firefox полностью игнорирует вызов doc.write
.
В запросе на обновление дубликата ключа имеет немного другой синтаксис :
INSERT INTO selfesteemscore (
selestscore
, UserID
) VALUES(
'NEW VALUE'
, 'NEW USER ID VALUE'
)
ON DUPLICATE KEY UPDATE
selestscore = 'NEW VALUE'
, UserID = 'NEW USER ID VALUE'
;
Или лучше, чтобы не повторять новые значения дважды:
INSERT INTO selfesteemscore (
selestscore
, UserID
) VALUES(
'NEW VALUE'
, 'NEW USER ID VALUE'
)
ON DUPLICATE KEY UPDATE
selestscore = VALUES(selestscore)
, UserID = VALUES(UserID)
;
ПРЕДУПРЕЖДЕНИЕ: читайте об SQL-инъекциях и escape-значениях или используйте операторы prapered.
P.S. Вы инициализируете переменную $ userId, но позже используете переменную $ userID