【问题标题】:Executing mySQL query in PHP with Dynamic Table name在 PHP 中使用动态表名执行 mySQL 查询
【发布时间】:2013-04-15 04:11:13
【问题描述】:

我有一个 android 应用程序,它将表名作为参数发送到 php 脚本以执行 mySQL 查询。 问题是表名是一个参数(因此是动态的)。我尝试按照我在此处阅读的一些问题中的建议使用{$table_name} 和反引号,但似乎没有任何效果。 谁能告诉这个问题的解决方案?

    <?php
    $dbhost = "localhost";
    $dbuser = "root";
    $dbpass = "mmm";
    $connect = mysql_connect($dbhost, $dbuser, $dbpass);
    $tabn= $_POST['tabn'];
    $dt=$_POST['dt'];
    $query="INSERT into $tabn VALUES('$dt')";
    $result = mysql_query($query);
    if($result)
    {
    $response["success"]=1;
    }
    else
    {
    $response["error"]=1;
    }
    echo json_encode($response);
    ?>

php 脚本如上所示。我得到error = 1 作为android LogCat 窗口中的输出。

【问题讨论】:

  • 你能不能 echo $query 直接在你的 phpmyadmin 中运行,然后你就可以很容易地知道是什么问题了
  • 你试过==1,用2个=符号代替1个吗?
  • 如果我回显它会在哪里显示?在 phpmyadmin 中执行特定查询的命令是什么? @Fred Single = 只是分配。 == 用于检查条件是否为真。
  • 你能把回显的内容粘贴到这里
  • Php 脚本回显一个对 Android 应用程序的 Json 响应。您希望我将查询连同响应一起发送到应用程序吗?

标签: php phpmyadmin mysqli dynamic-sql


【解决方案1】:

地点

if(mysql_errno()){
   die(mysql_error());
}

紧接着

$result = mysql_query($query);

它会显示 MySQL 错误。

或:

if(mysql_errno()){
    $response["error"]   = 1;
    $response["message"] = mysql_error();
} else {
    $response["success"] = 1;
}

代替:

if($result){
    $response["success"] = 1;
} else {
    $response["error"] = 1;
}

【讨论】:

  • 我没有投票给你。但这是一条评论。我会投票给你
  • 谢谢,不过没关系。我只是好奇,如果有什么问题。 OP 使用这个 sn-p 可能会有更好的调试。
  • 对不起,因为我的声誉较低,我无法投票给你。但是放置您的代码实际上显示了错误,我可以使用它来纠正问题。谢谢。 :)
  • 如果有帮助,请选择答案作为解决方案。不客气。
【解决方案2】:
$tablename = $_POST['gettable'];
$data='this is data you want to insert';
mysql_query("insert into `$tablename`(`data`) values('$data')");

$tablename

它获取数据将插入的表的名称。

$data

这是您要插入的数据。

当你想在你的数据库中插入数据并且你想选择 一个查询中的不同表。然后使用此查询,您可以插入数据 在不同的桌子上。

【讨论】:

    猜你喜欢
    • 2013-10-19
    • 2016-08-06
    • 2012-03-07
    • 2011-12-12
    • 2021-10-30
    相关资源
    最近更新 更多