我在使用網站的舊MySQL命令時遇到了問題。爲什麼這個MySQL命令不起作用
INSERT INTO
users(user_name, user_pass, user_email ,user_date, user_level)
VALUES('" . mysql_real_escape_string($_POST['user_name']) . "',
'" . sha1($_POST['user_pass']) . "',
'" . mysql_real_escape_string($_POST['user_email']) . "',
NOW(),
0);
它返回此錯誤。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'user_name']) . "',
'" . sha1($_POST['user_pass']) . "',
'" . mys' at line 3
該網站上的文章是從2010年5月,所以這可能是它不工作的原因。這裏是網站:http://code.tutsplus.com/tutorials/how-to-create-a-phpmysql-powered-forum-from-scratch--net-10188。如果你需要更多的信息,我會編輯這個問題。
該教程中的sql沒有任何問題。也許你應該完全按照你的實際代碼發佈。本教程在php中創建了一個變量 - 如果您將其與作者編寫的相同,則您的db永遠不會看到「$ _POST」變量 - 而是將這些變量的值連接到查詢中。 – billynoah
**警告**:編寫您自己的訪問控制層並不容易,有很多機會讓它嚴重錯誤。請不要在[Laravel](http://laravel.com/)等任何現代開發框架(http://codegeekz.com/best-php-frameworks-for-developers/)上編寫自己的認證系統,內置了強大的[認證系統](https://laravel.com/docs/5.2/authentication)。絕對不會遵循[推薦的安全最佳實踐](http://www.phptherightway.com/#security),並且從不使用SHA1存儲密碼。 – tadman
**警告**:如果您只是學習PHP,請不要學習過時的['mysql_query'](http://php.net/manual/en/function.mysql-query.php)界面。這很糟糕,並且已經在PHP 7中被刪除了。像[PDO不是很難學的東西](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-php-pdo- for-database-access /)以及[PHP The Right Way](http://www.phptherightway.com/)等指南有助於解釋最佳實踐。除非您使用準備好的語句,否則您從一個巨大的SQL注入漏洞是一個錯誤。 – tadman