PHP/MySQL 条件插入不插入

标签 php mysql

尝试让准条件插入起作用。我在数据库中有三种不同类型的元素,created_at 日期是唯一键。构建数据库的人为每个表(类(class)、系列、包)使用了相同的结构,所以我必须依赖 created_at 文件来获取唯一值。

情况是我想插入一个新行,但我不知道它是在 purchased_lessons、purchased_series 还是 purchased_pa​​ckages 表中。我知道 $item_current (这是从 $_POST 返回的日期 - 在另一个部分工作),我知道 $user_id (同样的原因)。但这不是插入新行:

$is_lesson = mysql_real_escape_string(mysql_query("SELECT id FROM lessons WHERE created_at LIKE \"$item_current\""));
$is_series = mysql_real_escape_string(mysql_query("SELECT id FROM series WHERE created_at LIKE \"$item_current\""));
$is_package = mysql_real_escape_string(mysql_query("SELECT id FROM packages WHERE created_at LIKE \"$item_current\""));
$lesson_rows = mysql_num_rows($is_lesson);
$series_rows = mysql_num_rows($is_series);
$package_rows = mysql_num_rows($is_package);
$lesson_result = mysql_fetch_array($is_lesson);
$series_result = mysql_fetch_array($is_series);
$package_result = mysql_fetch_array($is_package);
$lesson_id_to_insert = $lesson_result['id'];
$series_id_to_insert = $series_result['id'];
$package_id_to_insert = $package_result['id'];

if ($lesson_rows > 0) {
    mysql_query("INSERT INTO purchased_lessons VALUES ($user_id,$lesson_id_to_insert])");
} else if ($series_rows > 0) {
    mysql_query("INSERT INTO purchased_series VALUES ($user_id,$series_id_to_insert)");
} else if ($package_rows > 0){
    mysql_query("INSERT INTO purchased_packages VALUES ($user_id,$package_id_to_insert)");
}

我猜我离得太近了,只见树木不见森林。它只是不会执行插入。

最佳答案

像这样尝试:

mysql_query("INSERT INTO purchased_lessons VALUES (\"$user_id\",\"$lesson_id_to_insert\")");

在每个插入查询中添加引号。

关于PHP/MySQL 条件插入不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17527445/

相关文章:

php - 如何在 SQL 中排除具有 '0' 值的行而不排除具有 NULL 值的行?

php - 生成所有可能的二进制组合

javascript - Symfony sfValidators : Dynamically setting a value to be required or not?

php - 用户通过 PHP 中的登录表单登录后数据无法正确显示

mysql - 我有一个带有 uuid 和系统列的表。我需要一个查询来仅返回具有 system=1 的 uuid,而不返回具有 system= 1 nad 2 的 uuid

mysql - 如何使用多个 IN - Where IN (...) and IN (...)

javascript - codeigniter javascript 找不到错误

php - 将日期值(字符串)转换为具有不同时区的时间戳

php - 如何使用 PHP 对 SQL 语句中的多行进行 JSON 编码

mysql - 从出生日期计算带小数的年龄