为什么我不能在PHP中再更新SQL数据库

问题描述

我正在使用sql数据库使用PHP进行项目。一切都很好。然后从一刻到另一刻,我无法再从PHP中更新我的数据库。首先,我以为只是我,因为我几乎没有使用PHPsql的经验。但是在测试了一些我在互联网上发现的示例之后,我认为不是问题所在的代码。由于所有示例都无法正常运行,因此这些示例都无法正常工作。我制作了一些小的PHP测试文件只是为了测试。

 <?PHP
    define('DB_SERVER','localhost');
    define('DB_USERNAME','admin');
    define('DB_PASSWORD','admin');
    define('DB_NAME','leden');
    
    //create connection
    $conn = new MysqLi(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);
    // Check connection
    if ($conn->connect_error) {
      die("Connection Failed: " . $conn->connect_error);
    
    $sql = "UPDATE users SET urldoel = 'test' WHERE id=26";
    }
    ?> 

直接使用PHPMyAdmin时,sql命令可以正常工作。我没有问题读出值。几天前在同一数据库上工作的PHP代码不再起作用。我正在使用XAMP,甚至尝试过MAMP。 Als尝试使用用户名root和没有密码(= XAMPP认值)。不能让它工作了。花了整整6个小时的时间来尝试更新任何价值并测试我在互联网上发现的众多示例。

id是数据库中的唯一行,并且该行确实存在。证明该命令可在PHPMyAdmin中使用。

解决方法

首先,您需要将$ sql从if { }块中取出,然后需要使用mysqli_query($conn,$sql);执行sql语句,也可以使用PDO方法

<?php
    define('DB_SERVER','localhost');
    define('DB_USERNAME','admin');
    define('DB_PASSWORD','admin');
    define('DB_NAME','leden');
    
    //create connection
    $conn = new mysqli(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_NAME);
    // Check connection
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }
    $sql = "UPDATE users SET urldoel = 'test' WHERE id=26";
    if(mysqli_query($conn,$sql)){
        echo "succesfully updated</br>";
    }
    else {
        echo "not successfull";
    }
?>