我有一个名为 type 的数组。在我的数据库中,我有 4 列称为type_1 type_2 type_3 type_4
我正在尝试在循环的帮助下立即将其放入
此外,我还有另一个问题是将阵列推到我的刀片上,我将在最后描述这个问题!
没有循环,它可以工作 示例
$r = new PR;
$r->type_1 = $type[1];
$r->type_2 = $type[2];
$r->save();
Run Code Online (Sandbox Code Playgroud)
我尝试过的是:
$r = new PR;
foreach ($type as $key => $value) {
$r->type_.$key = $value;
}
$r->save();
Run Code Online (Sandbox Code Playgroud)
我也试过这个循环在刀片上调用 {{$r->type_$i}} 但不起作用
我正在尝试为 pgsql 编写一个触发器来保留特定表上的插入、更新和删除的日志。
我在创建触发器时在位置 171 上收到错误,但我真的不知道为什么。
日志表
+----------+-----------+---------------------------+
|table_name|column_name|data_type |
+----------+-----------+---------------------------+
|logs |id |bigint |
|logs |action |smallint |
|logs |table |character varying |
|logs |primary |bigint |
|logs |log |json |
|logs |processed |boolean |
|logs |created_at |timestamp without time zone|
|logs |updated_at |timestamp without time zone|
+----------+-----------+---------------------------+
Run Code Online (Sandbox Code Playgroud)
功能和触发
CREATE OR REPLACE FUNCTION insert_log (INT, VARCHAR, INT, VARCHAR) RETURNS INT AS $$
BEGIN
INSERT INTO public.logs ("action", "table", "primary", "log")
VALUES ($1, $2, $3, $4)
RETURNING id;
END
$$ …Run Code Online (Sandbox Code Playgroud) 我试图插入我的表Add_Product,但它不工作.它没有进入数据库,既没有显示任何错误这是我的连接类:
public static class ConnectionClass
{
private static SqlConnection con;
private static SqlCommand cmd;
static ConnectionClass()
{
string conString = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
con = new SqlConnection(conString);
}
public static void AddProduct(Product product)
{
cmd = new SqlCommand("insert into Add_Product (Party, Product_Name, Price, Quantity,Type,Details,Date) values (@Party, @Product_Name, @Price,Quantity,@Type,@Details, @Date,)", con);
cmd.Parameters.AddWithValue("@Party", product.Party);
cmd.Parameters.AddWithValue("@Product_Name", product.Product_Name);
cmd.Parameters.AddWithValue("@Price", product.Price);
cmd.Parameters.AddWithValue("@Quantity", product.Quantity);
cmd.Parameters.AddWithValue("@Type", product.Type);
cmd.Parameters.AddWithValue("@Details", product.Quantity);
cmd.Parameters.AddWithValue("@Date", product.Date);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
finally
{
con.Close();
cmd.Parameters.Clear();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是Product类构造函数:
public Product(string Party, string …Run Code Online (Sandbox Code Playgroud) private void save_Click(object sender, EventArgs e)
{
ACCOUNT.oo.Open();
string QRY = "insert into size(SIZENO,SIZE,COVERAGE,WEIGHT)
values('" + size_id.Text + "','" +txt_size.Text + "','" +txt_coverage.Text
+ "','" +txt_weight.Text + "')";
OleDbCommand ODB = new OleDbCommand(QRY,ACCOUNT.oo);
ODB.ExecuteNonQuery();
MessageBox.Show("Inserted Sucessfully..");
ACCOUNT.oo.Close();
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个"Prices"带有以当前时间命名的列的表。我试图将679.09输入到Prices列名称为1460217349.29 的表中。
INSERT INTO Prices('1460217349.29') VALUES (678.09);
Run Code Online (Sandbox Code Playgroud)
我看过w3学校,我认为这是正确的语法,但是我遇到语法错误missing SELECT。有什么建议吗?这似乎很简单。
编辑:似乎使用十进制数字需要反引号。我没有问过反引号,但这似乎是答案。
如果一行已经存在,我想检查我的sql表.如果我的表中不存在数据,我想保存数据.我在选择查询中使用但它不起作用.
这是我的代码:
$sql = "INSERT INTO searchtable (word, position, count) VALUES (:word , :position, :count)";
$statement = $db->prepare($sql);
$temp="SELECT COUNT(word) AS searchtableFromword FROM searchtable WHERE word=$title" ;
echo $temp;
if($temp== 0 )
{
$statement->execute(array(
'word' => $title,
'position' => $fileNum,
'count' => $titleVal
));
}
Run Code Online (Sandbox Code Playgroud) 我需要从一个表中读取数据并在MySQL数据库的另一个表中插入多行.
表1看起来像:
ID, name, e-mail, phone, city, ..., ....
Run Code Online (Sandbox Code Playgroud)
在表2中,我需要插入如下数据:
(row1) ID, "name", name
(row2) ID, "e-mail, e-mail
(row3) ID, "phone", phone
...
...
Run Code Online (Sandbox Code Playgroud)
表1有大约3000行
我想我需要使用某种foreach或do..while但是找不到任何有效的东西.任何人都可以告诉我如何做到这一点?
您好我无法弄清楚如何从一个表到另一个表插入不重复的行,我想到这样的事情
INSERT INTO Table1
SELECT id, name, lastname FROM Table2
WHERE id.Table1 != id.Table2
AND name.Table1 != name.Table2
AND lastname.Table1 != lastname.Table2
Run Code Online (Sandbox Code Playgroud)
如果它已经存在,如何编写指定不插入的条件?
编辑:我忘了提到我需要只匹配某些列,因为表包含标识1,1我的解决方案如下:
MERGE Table1 as t1
USING (SELECT name, lastname FROM Table2) AS t2 (name, lastname)
ON t1.[name] = t2.[name] AND t1.[lastname] = t2.[lastname]
WHEN NOT MATCHED
THEN
INSERT (name, lastname) VALUES (t2.[name], t2.[lastname]);
Run Code Online (Sandbox Code Playgroud)
当然,这只是一个例子,我使用了更多的列和数据
编辑:不重复,因为所提供的解决方案与整个表格匹配
我需要解决关于失败插入的无效自动增量的问题,以防某些唯一字段重复。
数据库
id : primary key(11) NOT NULL // !important: doesn't have auto increment
field : varchar(25) NOT NULL
Run Code Online (Sandbox Code Playgroud)
询问
$field = 'field1';
try{
$conn = new PDO("....");
$stmt = $conn->prepare("INSERT INTO table (id,field) VALUES (((SELECT MAX(id) FROM table as table_max_id)+1),:field)");
$stmt->bindParam(':field', $field, PDO::PARAM_STR);
if(!$stmt->execute())
print_r($stmt->errorInfo());//Column id cannot be null;
}
...
Run Code Online (Sandbox Code Playgroud)
发现的错误是:
列id不能为空;
如果表中有记录,则仅在表为空时不会发生此验证错误。
我可以通过放置一个带有 fake 的字段来解决问题id = 1,但我真的不喜欢它作为解决方案,有什么想法吗?
我有这个代码:
$date = '1991-08-13';
$sql = "INSERT into TABLEA
(nombre, apellido1, apellido2, direccion, codigoPostal,fechaNacimiento, notas)
VALUES
('agds', 'asdgff', 'gerth', 'dfghdfghd efdgvwr', 86486, $date, 'ShhhHH');";
Run Code Online (Sandbox Code Playgroud)
我的问题是下一个问题:
当我插入$ date的值是:1991-13-08但是在数据库中出现:0000-00-00
我看过其他帖子的解决方案如下:STR_TO_DATE()它不适合我,它会插入NULL.还有其他方法吗?
编辑:遗失:''在$ date(它应该是:'$ date')感谢您的纠正!(:
这是我的代码,我们有名为“our_new_database”的数据库。
连接很好,HTML 表单和凭据也很好,但我仍然无法将信息插入数据库。
表创建完成后,我可以在 XAMPP/phpMyAdmin 中看到列和行。
我得到的唯一错误是 If/Else 语句的最后一个回声 - “无法注册”。
尽我所能,但仍然无法使此插入正常工作。
有人可以给我一些建议吗?
<?php
include "app".DIRECTORY_SEPARATOR."config.php";
include "app".DIRECTORY_SEPARATOR."db-connection.php";
include "app".DIRECTORY_SEPARATOR."form.php";
$foo_connection = db_connect($host, $user_name, $user_password, $dbname);
$sql = "CREATE TABLE user_info(
user_name_one VARCHAR(30) NOT NULL,
user_name_two VARCHAR(30) NOT NULL,
user_email VARCHAR(70) NOT NULL UNIQUE
)";
if(mysqli_query($foo_connection, $sql)){
echo "Table created successfully";
}
else {
echo "Error creating table - table already exist.".mysqli_connect_error($foo_connection);
}
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$user_name_one = $_POST["userOne"];
$user_name_two = $_POST["userTwo"];
$user_email = $_POST["userEmail"];
$sql = "INSERT INTO user_info …Run Code Online (Sandbox Code Playgroud)