【问题标题】:php update mysql statement not working but same query works via phpmyadmin sql menuphp update mysql 语句不起作用,但相同的查询通过 phpmyadmin sql 菜单起作用
【发布时间】:2013-01-23 17:28:33
【问题描述】:

我正在运行一个脚本来更新 MySQL 表,并且我一直在回显更新语句以帮助解决更新语句不起作用的原因。当我将 mysql 更新的回显查询复制并粘贴到 phpmyadmin 中的 SQL 菜单中时,它可以正常工作,但是当我运行脚本时,更新查询不会执行。我知道我已成功连接到数据库。有谁知道为什么更新语句复制并粘贴到 phpmyadmin 的 sql 选项卡中的回显版本会成功执行,而不是应该在回显语句之前的行执行的实际查询?这是我的 php:

<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
</head>
<body>
<?php
$user = 'tunemashercom';
$pass = 'password';
$host = 'tunemashercom.ipagemysql.com';
$db_name = 'user_library';
@ $db = mysqli_connect($host, $user, $pass, $db_name);  

if (mysqli_connect_errno()) {
    echo 'Error: Could not connect to database.';
    exit;
}

$oldsongs = $_POST['oldsongs'];
$newsongs = $_POST['newsongs'];
$count = count($newsongs);
$count2 = count($oldsongs);
echo "COUNT 1: ".$count." - COUNT 2: ".$count2."<br />";
for($i=0;$i<=$count;$i++){
    $newtitle = $newsongs[$i]["song"];
    echo $newtitle." - ";
    if($newtitle == ""){
        echo "NO NEW TAGS<br />";
    }
    else{
        $title = $oldsongs[$i]["title"];
        echo $title."<br />";
        $artist = $oldsongs[$i]["artist"];
        $album = $oldsongs[$i]["album"];
        $newartist = $newsongs[$i]["artist"];
        $newalbum = $newsongs[$i]["album"];
        $mbid = $newsongs[$i]["mbid"];          
        $insert = "UPDATE collection SET song='".$newtitle."', artist='".$newartist."', album='".$newalbum."', gille_id='".$mbid."' WHERE song='".$title."' AND artist='".$artist."' AND album='".$album."'";
        $results = $db->query($insert);         
        echo $insert."<br />";      
    }
}

mysqli_close($db);

?>
</body>
</html>

【问题讨论】:

  • 当您尝试从 PHP 端进行更新时会显示什么错误?在这里需要更多信息。
  • PHP 方面没有错误。该脚本完美地运行并为 for 循环的每次迭代回显更新语句,但是当我检查数据库时,实际上没有执行任何查询。但是,当我将回显的语句(相同的更新查询)复制并粘贴到 phpmyadmin 中的 SQL 表单中时,更新查询完全按照我的意愿执行。

标签: php mysql phpmyadmin sql-update


【解决方案1】:

如果没有看到错误,很难知道问题出在哪里,但是,根据我的个人经验,当我在 UPDATE 查询中发生这种情况时,总是因为我用引号包裹了一个 ID。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    确保 phpmyAdmin 是与 php 代码相同的数据库,因此“tunemashercom.ipagemysql.com”

    检查以确保您使用 phpmyAdmin 的数据库(运行回显查询)与您使用 PHP 代码连接的数据库相同。

    例如,您正在从本地计算机连接到 phpmyAdmin,而您的 php 代码正在连接到托管服务器上的数据库。

    【讨论】:

    • 用户指出 phpMyAdmin 运行良好,但他的代码却不行。我投了反对票,因为这对我来说似乎是一个匆忙的回答,没有任何额外的解释。如果您扩大答案,我很乐意删除反对票。谢谢。
    【解决方案3】:

    问题可能与引号有关。在键入单引号时是“sumthng”,但在执行更新查询时,我们需要sumthng。我希望这行得通。我遇到了同样的问题,使用直接从 phpmyadmi 复制的引号解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 2013-05-03
      • 2017-09-14
      • 2021-04-12
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多