c# - 奇怪的查询。从另一个表中获取 id

标签 c# mysql

我想要什么:我想输入作者 ID,但我只得到作者姓名。来自表格作者。那么如何在下面的查询中获取作者 ID??

INSERT INTO book (title, isbn, author_id) VALUES('" + BookTitle.Text.ToString() + "', '" + BookIsbn.Text.ToString() + "', '(SELECT id FROM author WHERE first_name = '" + BookAuthor.Text.ToString() + "')')";

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Marijn')')' at line 1

我希望我说清楚我想要什么。

谢谢!

最佳答案

您不应该将第二个 SELECT 语句放在单引号中(MySQL 将其解释为字符串)。

"INSERT INTO book (title, isbn, author_id) 
VALUES ('" + BookTitle.Text.ToString() + "', '" + BookIsbn.Text.ToString() + "', 
    (SELECT id FROM author WHERE first_name = '" + BookAuthor.Text.ToString() + "'))"

PS 请注意,您将数据插入数据库的方法使其非常容易受到注入(inject)攻击。

关于c# - 奇怪的查询。从另一个表中获取 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596920/

相关文章:

c# - Request.Querystring 会自动 url 解码字符串吗?

php - 插入具有与现有行相关的值的新行

mysql - 多个自定义字段存储为meta_keys,如何与帖子连接?

c# - 如何在 Sharepoint 中配置 Web 部件的设置?

c# - 表单应该包含对象,还是对象包含表单?

c# - 使用我的项目在 GAC 中正常部署程序集?

c# - 调试c++ dll时找不到调试信息

php - 这是使用 mysql 的好方法吗?

MySql 没有显示在我的屏幕上

mySQL循环查询