我在我的網站上有一個INSERT操作,它的工作方式如下。MySql數據庫INSERT操作在硬盤(本地主機)上工作,但在互聯網上託管時無效
- 在按下按鈕的index.html文件中調用javascript函數。
- 在JavaScript函數中,AJAX用於將請求發送到具有必要參數的php文件
- php文件訪問數據庫插入數據。
這裏供參考的是上述任務的代碼。
2.Javascript功能
function grandFinale()
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","insert.php?q=&name=" + encodeURIComponent(document.getElementById('name').value) + "&txtScore1=" + encodeURIComponent(document.getElementById('txtScore1').innerHTML),true);
xmlhttp.send();
document.location.reload();
}
1.HTML按鈕
<p id="txtScore1" align="center" style="color: #cc6699; font-size: 18px; "></p>
<label class="control-label" for="input01">Name</label>
<a href="#" class="btn btn-primary" onclick="javascript:grandFinale()" >Submit My Score</a>
3.PHP腳本
<?php
$con = mysql_connect("host","uname","pword");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("dbname", $con) or die("Unable to select database");
$sql="INSERT INTO 'masterTable' ('Name', 'Score') VALUES ('{$_GET['name']}','{$_GET['txtScore1']}')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
?>
事情做工精細,當我在硬盤上,但在我的主機本地嘗試它在000webhost.com上的INSERT不起作用。你能提出我出錯的地方嗎?
你得到的錯誤是?此外,大的SQL注入缺陷。消除用戶輸入! – Hamish 2012-08-06 02:12:39
確保爲主機正確配置了用於數據庫訪問的參數。另外請注意,不應該將mysql_ *函數用於新應用程序,因爲它們已被棄用,並且請注意,您的應用程序完全容易受到SQL注入的攻擊,您應該使用PDO參數化查詢來防止這種情況。 – Lusitanian 2012-08-06 02:13:07
您有權在服務器數據庫中插入數據。請檢查一次? – 2012-08-06 02:14:45