Php 在表(用户_2)中插入用户_1不为空的值
发布请求后,我需要: 检查表上是否存在u_1,以及它是否在表中,插入u_2,其中u_1不为空 如果u_1不存在,则插入u_1 这是我的PHP代码 创建过程插入值插入值插入整型或文本?设置正确的数据类型 开始 如果存在,请选择NULL 从桌子上 其中u_2为空 更新测试 将u_2=值_设置为插入 其中u_2为空; 其他的 插入到表中 将u_1=值_设置为插入; 如果结束; 终止 然后不要忘记添加所需的错误检查 $sql=调用将值插入; $stmt=$conn->prepare$sql; $stmt->bind_params,$user; $stmt->execute;Php 在表(用户_2)中插入用户_1不为空的值,php,mysql,sql,Php,Mysql,Sql,发布请求后,我需要: 检查表上是否存在u_1,以及它是否在表中,插入u_2,其中u_1不为空 如果u_1不存在,则插入u_1 这是我的PHP代码 创建过程插入值插入值插入整型或文本?设置正确的数据类型 开始 如果存在,请选择NULL 从桌子上 其中u_2为空 更新测试 将u_2=值_设置为插入 其中u_2为空; 其他的 插入到表中 将u_1=值_设置为插入; 如果结束; 终止 然后不要忘记添加所需的错误检查 $sql=调用将值插入; $stmt=$conn->prepare$sql; $stmt
我更改了sql语法,现在它可以像我预期的那样工作了
if ( isset( $_POST["cards"],$_POST["user"],$_POST["cardvalues"],$_POST["tablekey"] ) ) {
$user = $_POST["user"];
$cards = $_POST["cards"];
$cardvalues = $_POST["cardvalues"];
$tablekey = $_POST["tablekey"];
$checkIfNull = "SELECT table_id FROM tables WHERE u_1 IS NOT NULL AND u_2 = '' LIMIT 1";
$insertIntoU_2 = "UPDATE tables SET u_2 = ? WHERE table_id = ?";
$insertIntoU_1 = "INSERT INTO tables (u_1,all_cards,card_value,table_key) VALUES (?,?,?,?)";
if ( $stmt = $conn->prepare( $checkIfNull ) ) {
if ( $stmt->execute() ) {
$result = $stmt->get_result();
$tableIdArray = array();
$i = 0;
if ( $result->num_rows > 0 ) {
while ( $row = $result->fetch_assoc() ) {
$tableIdArray["table_id"][$i] = $row["table_id"];
$i++;
}
$tableID = $tableIdArray["table_id"][0];
if ( $stmt = $conn->prepare( $insertIntoU_2 ) ) {
$stmt->bind_param( "ss",$user,$tableID );
$stmt->execute();
}
} else {
if ( $stmt = $conn->prepare( $insertIntoU_1 ) ) {
$stmt->bind_param( "ssss",$user,$cards,$cardvalues,$tablekey );
$stmt->execute();
}
}
}
}
}
插入值不允许WHERE子句。使用插入。。改为选择。PS.你想从哪一行检查什么u_1?@Akina我需要在u_1不为空的行中插入u_2,如果u_1为空,只需将u_1作为新行插入。我需要在u_1不为空的行中插入u_2。如果你只是要插入此行,行中的某些列可能不为空?也许你的意思是,此列中具有此值的另一行已经存在于表中?我只需要,如果u_1不是空的,插入u_2,就像这样,如果u_1是空的,插入u_1,就像我只需要,如果u_1不是空的,它一定不是空的?在哪一排?您的任务是:如果不存在具有指定u_1值的行,则使用空u_2插入该行,否则更新该行并将其u_2设置为指定值?Anycase show add into question文本表将表脚本创建为格式化文本,而不是图像。感谢您的时间,但我编写的代码并没有对我的代码结构进行太多更改。
if ( isset( $_POST["cards"],$_POST["user"],$_POST["cardvalues"],$_POST["tablekey"] ) ) {
$user = $_POST["user"];
$cards = $_POST["cards"];
$cardvalues = $_POST["cardvalues"];
$tablekey = $_POST["tablekey"];
$checkIfNull = "SELECT table_id FROM tables WHERE u_1 IS NOT NULL AND u_2 = '' LIMIT 1";
$insertIntoU_2 = "UPDATE tables SET u_2 = ? WHERE table_id = ?";
$insertIntoU_1 = "INSERT INTO tables (u_1,all_cards,card_value,table_key) VALUES (?,?,?,?)";
if ( $stmt = $conn->prepare( $checkIfNull ) ) {
if ( $stmt->execute() ) {
$result = $stmt->get_result();
$tableIdArray = array();
$i = 0;
if ( $result->num_rows > 0 ) {
while ( $row = $result->fetch_assoc() ) {
$tableIdArray["table_id"][$i] = $row["table_id"];
$i++;
}
$tableID = $tableIdArray["table_id"][0];
if ( $stmt = $conn->prepare( $insertIntoU_2 ) ) {
$stmt->bind_param( "ss",$user,$tableID );
$stmt->execute();
}
} else {
if ( $stmt = $conn->prepare( $insertIntoU_1 ) ) {
$stmt->bind_param( "ssss",$user,$cards,$cardvalues,$tablekey );
$stmt->execute();
}
}
}
}
}