在数据库中插入/更新php变量
我只想问一个问题。如何将php变量插入数据库 我想插入的两个变量是$profitText和$closedb。我试了两种方法,但都没用。请开导我在数据库中插入/更新php变量,php,sql,mysqli,Php,Sql,Mysqli,我只想问一个问题。如何将php变量插入数据库 我想插入的两个变量是$profitText和$closedb。我试了两种方法,但都没用。请开导我 $mysqli-> query( "UPDATE trade_history1 set close='{$closedb}' WHERE `trade_id` = " . $trade_id); $mysqli->query( "UPDATE trade_history1 set profitandl
$mysqli-> query(
"UPDATE trade_history1 set close='{$closedb}'
WHERE `trade_id` = " . $trade_id);
$mysqli->query(
"UPDATE trade_history1 set profitandloss='" . addslashes($profittext) . "'
WHERE `trade_id` = '" . addslashes($trade_id) . "'");
///////
$mysqli->query(
"INSERT INTO `trade_history1` (
user_id, trade_id, selection, date, type, size, bidprice,
offerprice, stoploss, takeprofit,dateclose,close,profitandloss)
SELECT user_id, trade_id, selection, date, type, size, bidprice,
offerprice, stoploss, takeprofit, 'null','null','null'
FROM `opentrades`
WHERE `trade_id` = " . $trade_id);
$mysqli->query("UPDATE trade_history1
set dateclose=CURRENT_TIMESTAMP WHERE `trade_id` = " . $trade_id);
$mysqli->query("UPDATE trade_history1
set close='{$closedb}' WHERE `trade_id` = " . $trade_id);
$mysqli->query("UPDATE trade_history1
set profitandloss='" . addslashes($profittext) . "'
WHERE `trade_id` = '" . addslashes($trade_id) . "'");
$mysqli->query("DELETE FROM `opentrades` WHERE `trade_id` = " . $trade_id);
“无济于事”并不是对所发生事情的一个非常有意义的描述。如果查询被发送到数据库,但没有成功处理,那么数据库会给您一条明确的错误消息,说明原因
此外,不应使用addslashes()来转义拼接到查询中的值。与占位符或一起使用(尽管对于整数数据类型/枚举值的数组查找,显式转换为整数也是一种合理的方法)
在PHP和MySQL之间的边界处进行调试时,最好仔细查看代码发送到数据库的SQL(虽然使用参数绑定在PHP端不可见,但在数据库端可见)
此外,您应该确保在您的开发环境中,PHP检测到的任何错误都可以在某处看到——也许您没有数据库连接
根据您提供的信息,无法判断它为什么会损坏(SQL看起来正常)尝试单引号引SQL,双引号引php变量,尽管我不确定您是要插入变量还是要将变量求值插入db首先,您可以在一个查询中更改多个列。因此,您的第一组和最后一组查询可以成为:-
$stmt = $mysqli->prepare("UPDATE trade_history1
set close=?, profitandloss=? WHERE trade_id = ?");
$stmt->bind_param('ssi', $closedb, addslashes($trade_id), $trade_id);
if ( ! $stmt->execute() ) {
// error processing code
}
与上一组更新类似:-
$stmt = $mysqli->prepare("UPDATE trade_history1
SET dateclose=NOW(), close=?, profitandloss=?
WHERE trade_id = ?";
$stmt->bind_param('ssi', $closedb, ddslashes($profittext), $trade_id);
if ( ! $stmt->execute() ) {
// error processing code
}
并创建历史记录查询:-
$stmt = $mysqli->prepare(
"INSERT INTO trade_history1 (user_id, trade_id, selection, date, type, size,
bidprice, offerprice, stoploss, takeprofit,dateclose,
close,profitandloss)
SELECT user_id, trade_id, selection, date, type, size, bidprice,
offerprice, stoploss, takeprofit, NULL, NULL, NULL
FROM opentrades
WHERE trade_id = ?";
$stmt->bind_param('i', $trade_id);
if ( ! $stmt->execute() ) {
// error processing code
}
首先,不要使用mysql,而是使用。请注意重要的连接代码 接下来,这里是正确的方法:
$sql = "UPDATE trade_history1 set close=?, profitandloss=? WHERE trade_id = ?";
$stm = $pdo->prepare($sql);
$stm->execute(array($closedb,$profittext,$trade_id))
$mysqli->query('updatetrade\u history1 set close=“{$closedb}”其中
trade\u id
='。$trade\u id);就像这样,有一种联系。只有涉及2变量的2更新不起作用,起作用的只是时间戳。它被键入数据库。