[英](PHP/MYSQL) Insert Into won't work when inserting large values, no timeout or errors
我正在使用Flash開發AS3程序; 在程序中,輸入用戶名和密碼,然后選擇一副卡片進行注冊; 單擊注冊按鈕后,Flash會從卡片組中發送用戶名,密碼和一個長字符串,該字符串可以超過1 MB長(但目前只有1 KB長)。
為此,我使用INSERT INTO
方法。 這是我的代碼:
<?php
/*
connect to database
*/
include "connect.php";
/*
create POST vars to receive data from flash
*/
$username = $_POST['username'];
$password = $_POST['password'];
$sdTrunkest = $_POST['sdTrunk'];
$sql = "INSERT INTO users (username, password, Trunk) VALUES ('$username', '$password', '$sdTrunkest')";
mysql_query($sql);
exit("result_message=Success");
?>
當我在$ sdTrunkest大約100字節長的情況下運行此代碼時,它可以正常運行並注冊。 但是,當我嘗試在$ sdTrunkest約為1 KB時運行它時,它只是“假裝從未見過” INSERT INTO
行。 它不會給我超時錯誤,即使如此,我還是嘗試使用ini_set('max_execution_time', 0);
,但沒有改變。 實際上,它根本不會給我任何錯誤。 INSERT INTO
無法處理長文本嗎? 有辦法解決這個問題嗎?
預先謝謝^^
我發現了問題。 它與mysql_connect錯誤沒有任何關系,但是我還是最好改用mysqli以避免其他錯誤。 無論如何,問題出在字符串本身。 不是大小,而是內容。 其中一張卡的名稱帶有撇號,這很可能使事情搞砸了。 我刪除了撇號,復制了文本並將其粘貼多次以增加大小,但仍然可以正常使用。
我猜為什么這么頻繁地問這個問題是因為您添加的文字越多,您犯錯的可能性就越大。
非常感謝所有發表評論的人^^
是的,這通常被稱為清理輸入,這是我的第一條評論。 有幾種清理方法,但最容易理解的是使用mysql_real_escape_string( http://www.php.net/manual/zh/function.mysql-real-escape-string.php )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.