php 使用登录调用未定义的函数 mysql_query()
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/39493105/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Call to undefined function mysql_query() with Login
提问by The One and Only ChemistryBlob
When i execute my PHPcode below i get a Fatal errorand i'm not sure how to resolve it.
当我在下面执行我的PHP代码时,我收到一个致命错误,我不知道如何解决它。
Thank you for your help
感谢您的帮助
The Error
错误
PHP Fatal error: Uncaught Error: Call to undefined function mysql_query() in /Applications/MAMP/htdocs/lprapp/config.php:23 Stack trace:#0 {main} thrown in /Applications/MAMP/htdocs/lprapp/config.php on line 23
PHP 致命错误:未捕获的错误:调用 /Applications/MAMP/htdocs/lprapp/config.php:23 中未定义的函数 mysql_query() 堆栈跟踪:#0 {main} 抛出在 /Applications/MAMP/htdocs/lprapp/config 中。第 23 行的 php
Code
代码
<?php
$user = 'root';
$password = 'root';
$db = 'inventory';
$host = 'localhost';
$port = 8888;
$link = mysqli_init();
$success = mysqli_real_connect(
$link,
$host,
$user,
$password,
$db,
$port
);
?>
<?php
$username = $_POST['username'];
$password = $_POST['password'];
$sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysql_num_rows($sql);
if($rom > 0 )
{
session_start();
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
echo "login done";
}else {
echo "fail login ";
}
?>
回答by The One and Only ChemistryBlob
You are mixing mysql and mysqli
您正在混合使用 mysql 和 mysqli
Change these lines:
更改这些行:
$sql = mysql_query("SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysql_num_rows($sql);
to
到
$sql = mysqli_query($success, "SELECT * FROM login WHERE username = '".$_POST['username']."' and password = '".md5($_POST['password'])."'");
$row = mysqli_num_rows($sql);
回答by FrankSunnyman
回答by Kostya Zhevlakov
What is your PHP version? Extension "Mysql" was deprecated in PHP 5.5.0. Use extension Mysqli (like mysqli_query).
你的PHP版本是什么?PHP 5.5.0 中不推荐使用扩展“Mysql”。使用扩展 Mysqli(如 mysqli_query)。
回答by YaBCK
I would recommend that start using mysqli_() and stop using mysql_()
我建议开始使用 mysqli_() 并停止使用 mysql_()
Check the following page: LINK
检查以下页面:LINK
Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include: mysqli_affected_rows() PDOStatement::rowCount()
警告 此扩展在 PHP 5.5.0 中已弃用,并在 PHP 7.0.0 中删除。相反,应使用 MySQLi 或 PDO_MySQL 扩展。另请参阅 MySQL:选择 API 指南和相关常见问题以了解更多信息。此函数的替代方法包括: mysqli_affected_rows() PDOStatement::rowCount()