当我在浏览器中运行链接时,如何在尝试将值(传递在链接中)存储到数据库时解决致命错误?

时间:2017-04-05 16:39:21

标签: php mysql database

最近我一直在研究一个项目,我想在浏览器中运行链接时向数据库插入一个值(数据在此链接中传递{https://masp203.000webhostapp.com/hinderset.php?speed=40}并且值为速度即将40存储到数据库中。我使用php代码执行此操作并在https://www.000webhost.com/中创建数据库。我上传了webhost的php代码public_html。代码如下。

<?php
$servername = "server";
$username = "use******";
$password = "pass****";
$dbname = "db****";

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}



$sql = "INSERT INTO hinder (speed) VALUES ('".mysql_real_escape_string($_GET['speed'])."')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

但是当我在浏览器中运行此链接时,它会返回致命错误,而不是更新数据库:

Fatal error: Uncaught Error: Call to undefined function mysql_real_escape_string() in /storage/h9/224/1250224/public_html/hinderset.php:18 Stack trace: #0 {main} thrown in /storage/h9/224/1250224/public_html/hinderset.php on line 18

我评论了以下代码行:     $ sql =&#34; INSERT INTO阻碍(速度)VALUES(&#39;&#34; .mysql_real_escape_string($ _ GET [&#39; speed&#39;])。&#34;&#39;)& #34 ;;

并在php代码中添加以下行

$sql = "INSERT INTO hinder VALUES (10)";

然后我在浏览器中运行链接,然后将值(即10)存储到数据库中。所以代码的连接部分工作正常,但我想其他问题。我无法弄明白。可以有人请帮帮我。

1 个答案:

答案 0 :(得分:1)

您对数据库的连接类型为mysqli,但您尝试使用的功能是mysql

替换你的

$sql = "INSERT INTO hinder (speed) 
VALUES ('".mysql_real_escape_string($_GET['speed'])."')";

用这个

$sql = "INSERT INTO hinder (speed) 
VALUES ('".mysqli_real_escape_string($conn,$_GET['speed'])."')";

P.S。远离www.000webhost.com。他们以很多非常糟糕的事情而闻名。