【问题标题】:Data is not getting stored in mySQL database using XAMPP数据未使用 XAMPP 存储在 mySQL 数据库中
【发布时间】:2017-12-10 19:10:00
【问题描述】:

我已经使用名为 test226333 的 XAMPP 在 mysql 中创建了一个数据库,我正在尝试像这样将数据发送到表中
"http://localhost/write_data.php?value=100"
for database and table details screenshot click here

我的php代码是

<?php

$dbusername = "ganesh"; 
$dbpassword = "varma";  
$server = "localhost"; 

$dbconnect = mysql_connect($server, $dbusername, $dbpassword);
$dbselect = mysql_select_db("test226333",$dbconnect);



$sql = "INSERT INTO test226333.data VALUES ('".$_GET["value"]."')";    


mysql_query($sql);


?>

进入链接时没有显示任何内容,并且数据没有存储在数据库中

请帮帮我
提前谢谢..

【问题讨论】:

  • 我们应该如何访问本地主机? ://
  • 请使用PDOmysqli
  • 请阅读有关与数据库通信时最基本的错误控制和调试措施是什么。这已经解释了无数次了。
  • 警告:如果您只是学习 PHP,请不要使用mysql_query 接口。它是如此可怕和危险,以至于它在 PHP 7 中被删除。像 PDO is not hard to learn 这样的替代品和像 PHP The Right Way 这样的指南解释了最佳实践。您的用户数据不是properly escaped,有SQL injection bugs,可以被利用。

标签: php mysql phpmyadmin xampp


【解决方案1】:

试试这个:

  $servername = "localhost";
    $username = "ganesh";
    $password = "varma";
    $dbname = "test226333";
    $mysqli = new mysqli($servername, $username, $password, $dbname);
    if ($mysqli->connect_errno) {
        echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }

    /* Prepared statement, stage 1: prepare */
    if (!($stmt = $mysqli->prepare("INSERT INTO <your table name>(col1, col2, col3) VALUES (?, ?, ?)"))) {
         echo "Prepare failed: (" . $mysqli->errno . ") " . $mysqli->error;
    }

    /* Prepared statement, stage 2: bind and execute */

    if (!$stmt->bind_param("i", $val1)) {
        echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
    }
 if (!$stmt->bind_param("s", $val2)) {
        echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
    }
if (!$stmt->bind_param("i", $val3)) {
        echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
    }

    if (!$stmt->execute()) {
        echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }

    /* explicit close recommended */
    $stmt->close();

【讨论】:

  • 警告:当使用mysqli 时,您应该使用parameterized queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug切勿$_POST$_GET任何用户数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • 将其切换为mysqli 不是一个坏主意,但只是在查询中猛击$_GET 数据是非常糟糕的。提供建议时请务必小心谨慎。像这样的代码会被复制粘贴到生产环境中并造成严重的麻烦。
猜你喜欢
  • 2016-06-17
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2021-04-07
  • 2017-12-15
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
相关资源
最近更新 更多