我正在尝试将数据插入到我的 MySQL 表中,但没有成功。我的代码看起来像:
$mysqli = mysqli_connect("localhost","login info");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (isset($_POST['submit'])) {
$number = $_POST['number'];
$road = $_POST['road'];
$postcode=$_POST['postcode'];
$price=$_POST['price'];
$type=$_POST['type'];
$bedrooms=$_POST['bedrooms'];
$agent=$_POST['agent'];
$featured=$_POST['featured'];
$keywords=$_POST['keywords'];
$mysqli->query("
INSERT INTO listings-rent
(number, road, postcode, price, type, bedrooms, agent, featured, keywords)
VALUES
('$number','$road','$postcode','$price','$type','$bedrooms','$agent','$featured','$keywords')");
}
Run Code Online (Sandbox Code Playgroud)
连接正常,没有返回错误。
我创建了一个表,它的目的是存放我多年来创建的查询数据库,我创建了一个相应的表单来插入所有信息,但我无法使代码正常工作。
Private Sub cmd_go_Click()
Dim insertstring As String
insertstring = "INSERT INTO KWTable (KW, Source, Code) VALUES (" & text_key.Value & "," & combo_source.Value & "," & text_code.Text & ");"
DoCmd.RunSQL insertstring
End Sub
Run Code Online (Sandbox Code Playgroud)
目标表上的三列是 KW、Source 和 Code,插入到它们中的值是 text_key(这是我输入的关键字,以便我稍后在需要引用某些内容时可以搜索它们)、combo_source.Value(其中是一个组合框,其中包含保存这些代码和查询的数据库列表,我将在插入表时选择正确的)和 text_code(这是查询的实际代码本身)
该代码应该将关键字(文本)、源代码(组合框列表)和代码(文本)插入到 KWTable 中。但是当我单击添加记录按钮时,我收到一个“运行时错误 424:需要对象”错误框,并且它突出显示了整个插入字符串行。我无法解决错误所在。有什么想法吗?
我正在运行这个 SQL 查询:
$regSql = "INSERT INTO orderregel(AANTAL) VALUES('$aant') WHERE TAAK_ID='$TkID'";
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
$regSql = "INSERT INTO orderregel(AANTAL) VALUES('$aant') WHERE TAAK_ID=$TkID";
Run Code Online (Sandbox Code Playgroud)
但它都给出了这个错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行的“WHERE TAAK_ID='13'”附近使用的正确语法
可能的解决方案是什么?
我正在使用 PHP 将新记录插入到我的 Postgres 数据库中。now()在我的查询中,我添加了用于写入插入日期和时间的函数。
$query = "INSERT INTO myTable(field1, field2, date, field4, field5) values('" . pg_escape_string($value1) . "', '" . (int) pg_escape_string($value2) . "', NOW(), '" . pg_escape_string($value4) . "', '" . pg_escape_string($value5) . "')";
Run Code Online (Sandbox Code Playgroud)
日期单元格的类型是timestamp without time zone,以下是它写入日期的方式:
2015-05-26 11:13:51.727018
Run Code Online (Sandbox Code Playgroud)
点后面的数字是什么以及如何避免它?
谢谢。
是否可以在 PostgreSQL 的 INSERT 语句中为特定值创建锁?
可以说,我有这张桌子:
CREATE TABLE IF NOT EXISTS bookings (
bookingID SERIAL PRIMARY KEY,
tableID integer REFERENCES tables ON DELETE CASCADE,
startTime timestamp NOT NULL,
endTime timestamp NOT NULL,
);
Run Code Online (Sandbox Code Playgroud)
现在,如果启动了一个带有 INSERT 的事务块,我可以在事务时间内为具有相同 tableID 和相同日期的所有其他 INSERTS 创建锁吗?
因此,同一 tableID 的第二次预订必须等待第一个预订完成。之后可以再次检查,是否仍然可以插入。所以它基本上是 INSERTS 中特定值的 ROW 锁。
该程序是用 Java 编写的,但由于瓶颈,我不想使用同步块。
谢谢您的帮助
我在Perl中有以下绑定查询.
$sth = $dbh->prepare("insert into tbl_name values(?,?)");
$sth->execute($val1, $val2);
Run Code Online (Sandbox Code Playgroud)
但是,如果该tbl_name表中的第一个coloumn 是自动增量主键怎么办?我该怎么做才能处理这个领域?
问题:
我有一些连接到数据库的代码,根据条件检查是否找到记录,如果找到记录,则返回 3 并生成一条消息,让用户说已经存在包含这些详细信息的记录。如果记录尚不存在,则执行插入查询以创建记录。
问题是,选择查询在短时间连续第二次执行时,似乎在结果是找到记录时挂起(返回 3,向用户生成消息) - 因为它没有通过代码进行,没有错误报告并且程序上的 GUI 没有响应(无法单击任何其他对象并且无法响应关闭窗口)。Netbeans 仍然运行良好,我能够通过它停止程序的运行。
测试:
A) 如果我在第一次成功执行后在同一个数据库上运行另一个查询,但在不同的表上,代码正确执行,但返回尝试再次执行原始查询会导致它挂起。
B) 执行代码并且不返回任何结果不会导致它挂起。(见下面的代码)
C) 在 SE 上扫描了其他类似的问题,但似乎找不到任何解决我的问题的方法。
使用的资源: ucanaccess-2.0.9.3、Netbeans IDE 8.1、JDK 1.8(由于与公司旧版本的兼容性问题,编译为 1.6)、公司网络上的 MS Access 数据库
代码:
public int insertAddPeriod(String strProjectNumber, String strYear, String strPeriod){
System.out.println("Checking to see if record already exists: " + strProjectNumber + ", Year: " + strYear + ", Period: " + strPeriod);
String strSQLString = null;
try{
strSQLString = "SELECT Program_No, Year, Period FROM tblCost WHERE Program_No = ? AND Year = …Run Code Online (Sandbox Code Playgroud) 考虑下表和Microsoft 的 INSERT 文档中处理 IDENTITY 列的SQL :
CREATE TABLE dbo.T1 (column_1 int IDENTITY, column_2 VARCHAR(30));
GO
INSERT T1 (column_2) VALUES ('Row #2');
Run Code Online (Sandbox Code Playgroud)
该INSERT语句未指定column_1为表的列,并且 SQL Server 自动填充该标识列的下一个值。这是处理标识列的正常方式。
如何在指定列名的同时具有相同的行为?
例如,我正在寻找类似的东西:
INSERT INTO T1 (column_1, column_2)
VALUES (NEXT VALUE, 'Row #3');
GO
Run Code Online (Sandbox Code Playgroud)
我不相信NEXT VALUE在这里有效,但是有什么有效的方法吗?是否有指示应使用标识列的密钥标记或函数?
注意:我问的原因是我使用的框架要求在列列表中指定所有列。
我正在尝试找出如何从临时表(temp)插入现有表(tbl01)中的临时表(temp)中。我希望这是有道理的。我基本上是在尝试使用自表的上一次更新以来发生的记录来更新表。到目前为止,这是我的代码:
insert into tbl01
(sale_store, sale_dt, sale_register, sale_trans)
select distinct
sale_store, sale_dt, sale_register, sale_trans
from temp
where NOT EXISTS (select * from tbl01)
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是它可以运行,但不会在表中放入任何新记录 -应该有很多新记录。我确定这是我所缺少的小而愚蠢的东西。我以这篇文章为指导:如何避免在SQL Server的INSERT INTO SELECT查询中重复?
先感谢您!
下面的 SQL 命令是如何工作的?
exec sp_executesql N'SET NOCOUNT ON;
DECLARE @inserted0 TABLE ([Id] int, [_Position] [int]);
MERGE [OrderLine] USING (
VALUES (@p1, @p2, 0),
(@p3, @p4, 1),
(@p5, @p6, 2),
(@p7, @p8, 3)) AS i ([Item], [OrderId], _Position) ON 1=0
WHEN NOT MATCHED THEN
INSERT ([Item], [OrderId])
VALUES (i.[Item], i.[OrderId])
OUTPUT INSERTED.[Id], i._Position
INTO @inserted0;
SELECT [t].[Id] FROM [OrderLine] t
INNER JOIN @inserted0 i ON ([t].[Id] = [i].[Id])
ORDER BY [i].[_Position];
',N'@p1 nvarchar(64),@p2 int,@p3 nvarchar(64),@p4 int,@p5 nvarchar(64),@p6 int,@p7 nvarchar(64),@p8 int',@p1=N'Item-1',@p2=1,@p3=N'Item-2',@p4=1,@p5=N'Item-3',@p6=1,@p7=N'Item-4',@p8=1
Run Code Online (Sandbox Code Playgroud)
(它由 …
sql-insert ×10
sql ×6
mysql ×3
postgresql ×2
sql-server ×2
database ×1
forms ×1
insert ×1
insert-into ×1
java ×1
ms-access ×1
netbeans ×1
perl ×1
php ×1
teradata ×1
timestamp ×1
ucanaccess ×1
vba ×1
where-clause ×1