第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將JS腳本中的數(shù)據(jù)插入mysql數(shù)據(jù)庫

將JS腳本中的數(shù)據(jù)插入mysql數(shù)據(jù)庫

UYOU 2023-08-24 21:07:15
我創(chuàng)建了一個腳本來倒計時我提交到表單中的任何值,然后輸出“提交的值+我單擊提交按鈕的那一刻的日期”作為結果。但現(xiàn)在我想在每次使用 SQL 查詢使用表單時將結果存儲到數(shù)據(jù)庫中,然后使用 SELECT SQL 查詢在另一個名為“l(fā)og.php”的頁面中回顯所有這些結果。var timelog = [];function myF() {    countdown(s);    log = document.getElementById("log").innerHTML = s + 'at ' + new Date();    timelog.push(log);}function logged() {    document.getElementById("timeloggg").innerHTML = timelog;}我試圖將結果分配給一個變量,但顯然,我不能在腳本之外使用這個變量。經過一些谷歌搜索,我被告知要使用 Ajax,但遺憾的是我無法弄清楚如何使用 ajax 插入數(shù)據(jù),因為所有代碼示例都只是關于從數(shù)據(jù)庫調用數(shù)據(jù)。那么關于如何將結果插入我的數(shù)據(jù)庫有什么建議嗎?我還是個初學者,所以如果您不介意的話請詳細解釋。
查看完整描述

2 回答

?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

當然,可以從客戶端 js 將數(shù)據(jù)插入數(shù)據(jù)庫,但不要!我想不出一種方法可以做到這一點,不會暴露您的數(shù)據(jù)庫憑據(jù),讓您容易受到惡意行為者的攻擊。


您需要做的是在服務器上設置一個 php 腳本,然后使用 xhr 請求將您想要插入的數(shù)據(jù)(通過 POST 或 GET)發(fā)送到該腳本,并讓該 php 腳本執(zhí)行插入操作。然而,要確保這一點還需要做很多工作。谷歌“如何清理 php 中的 mysql 輸入”并閱讀了幾篇相關文章。


根據(jù)您需要執(zhí)行的操作,您可以自己清理輸入,但推薦的方法是使用準備好的語句,您需要閱讀特定實現(xiàn)的文檔,無論是 mySQL 中的 mysqli 還是 pdo 還是其他一些庫(假設您使用的是 SQL、postGRE、Oracle 等)。


華泰


=================================================


以下是如何在 js 中執(zhí)行此操作,但不要這樣做,除非您永遠不會在本地計算機之外公開此代碼。


var connection = new ActiveXObject("ADODB.Connection");

var connectionstring = "Provider=host;Data Source=table;User Id=user;Password=pass;";

connection.Open(connectionstring);


var rs = new ActiveXObject("ADODB.Recordset");

var sql = {{your sql statement}};

rs.Open(sql, connection);


connection.close;

==============================================


對于 php,執(zhí)行類似的操作,將主機、用戶、通行證、數(shù)據(jù)庫替換為您的實際憑據(jù)以及主機名和數(shù)據(jù)庫:


$db = new mysqli({host}, {user}, {pass}, {database});

if($db->connect_errno > 0){ die ("Unable to connect to database [{$db->connect_error}]"); }

設置連接。如果這是一個可公開訪問的 php 服務器,則存在有關如何設置連接的規(guī)則,以便您不會意外暴露您的憑據(jù),但我現(xiàn)在將跳過它。您基本上可以將其保存到一個無法從外部訪問的文件中(例如,在文檔根目錄之上),然后將其包含在內,但數(shù)據(jù)庫安全性是一個復雜的主題。


要獲取在 ajax 調用的查詢字符串中傳遞的值:


$val1 = $_GET['val1'];

$val2 = $_GET['val2'];

然后使用參數(shù)化查詢進行插入:


$query = $db->prepare("

    INSERT INTO your_table (field1, field2)

    VALUES (?, ?)

");

$query->bind_param('ss', $val1, $val2);

$query->execute();

現(xiàn)在,您必須查看文檔。“ss”意味著它將把您插入的這兩個值視為字符串。我不知道設置的表,因此您必須為實際插入的內容查找正確的代碼,例如如果它們是整數(shù),則“ii”或“si”意味著第一個值是字符串,第二個是整數(shù)。


以下是允許的值:


i - 整數(shù) d - 雙精度數(shù) s - 字符串 b - BLOB


但無論如何請查看準備好的語句的文檔。我在這個例子中使用了 msqli。


查看完整回答
反對 回復 2023-08-24
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

您可能想檢查 Ajax 請求。

您要做的基本上是創(chuàng)建從 javascript 到服務器上的 php 文件的異步請求。

Ajax 允許通過與后臺服務器交換少量數(shù)據(jù)來異步更新網(wǎng)頁。這意味著可以更新網(wǎng)頁的部分內容,而無需重新加載整個頁面。


查看完整回答
反對 回復 2023-08-24
  • 2 回答
  • 0 關注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號