首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL INSERT SQL语句

SQL INSERT SQL语句
EN

Stack Overflow用户
提问于 2017-08-25 03:42:56
回答 1查看 100关注 0票数 0

我有一个使用MySQL服务器的安卓应用程序,我想知道如何使用INSERT INTO SELECT语句。下面是我的php脚本中的内容。当我用‘硬编码’值测试它时,它就能工作。

代码语言:javascript
运行
复制
<?php
require "conn.php";
$UserID = $_POST["UserID"];
$EventID = $_POST["EventID"];

$query = "INSERT INTO Interested (UserID, EventID) 
SELECT '$UserID' , '$EventID' FROM Interested 
WHERE NOT EXISTS (SELECT UserID, EventID FROM Interested WHERE UserID = '$UserID' 
AND EventID = '$EventID') LIMIT 1;";

$result = mysqli_query($conn ,$query);
if(mysqli_num_rows($result) > 0)
{
    echo "Interested";
}
else
{
    echo "Duplicate";
}
?>

Android给我这个错误信息

代码语言:javascript
运行
复制
08-24 21:57:39.517 8553-9030/com.example.feelingoodlivinbeta.socialdreams_a1 E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #3
   Process: com.example.feelingoodlivinbeta.socialdreams_a1, PID: 8553
   java.lang.RuntimeException: An error occurred while executing doInBackground()
       at android.os.AsyncTask$3.done(AsyncTask.java:309)
       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
       at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
       at java.util.concurrent.FutureTask.run(FutureTask.java:242)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
       at java.lang.Thread.run(Thread.java:818)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2
       at com.example.feelingoodlivinbeta.socialdreams_a1.InterestedFunction.doInBackground(InterestedFunction.java:32)
       at com.example.feelingoodlivinbeta.socialdreams_a1.InterestedFunction.doInBackground(InterestedFunction.java:24)
       at android.os.AsyncTask$2.call(AsyncTask.java:295)
       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
       at java.lang.Thread.run(Thread.java:818) 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-26 00:11:39

谢谢各位,我通过使用INSERT IGNORE找到了解决方案,谢谢@Barmar your co

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45869720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档