0
<?php
$con=mysqli_connect("localhost","root","123456","astralms");

if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$username = htmlspecialchars(mysql_real_escape_string($_GET['username']));

$result = mysqli_query($con,"SELECT * FROM accounts WHERE name = '$username'");

while($row = mysqli_fetch_array($result))
  {
    echo $row['gm'];
    echo "<>";
    echo $row['vpoints'];
    echo "<>";
    echo $row['ACash'];
   }
?>

这是我的代码。所有信息都是 100% 正确的。但是,即使我确实输入了密码,但它就像我没有输入密码一样。

为什么?谢谢!

4

2 回答 2

3

你有一个mysqli连接,所以不要使用 mysql_real_escape_string(),你会想要使用mysqli_real_escape_string()

您看到的错误是由于 mysql_real_escape_string() 试图建立自己的连接,因为没有使用旧 api 的连接处于活动状态。

编辑:mysqli_real_escape_string将与数据库的连接作为第一个参数,因此在您的情况下,您可以这样称呼它;

mysqli_real_escape_string($con, $_GET['username'])
于 2013-08-17T07:47:43.443 回答
3

您正在使用对旧的、已弃用mysql的函数的调用来调用mysql_real_escape_string.

两个扩展有不同的连接,不要混用。

对转义函数的调用需要一个活动连接,因为转义必须知道当前的编码设置。mysql 扩展没有连接,正在使用 php.ini 的默认参数打开一个。幸运的是,它不适用于这些。

于 2013-08-17T07:48:19.227 回答