【问题标题】:Inserting data into two separate tables using PHP使用 PHP 将数据插入两个单独的表中
【发布时间】:2023-03-04 20:18:01
【问题描述】:

我正在尝试将数据插入到同一个数据库中的两个不同的表中,如果我尝试将其插入到一个数据库中,它会起作用,但是,一旦我将第二个查询插入到我的代码中 ($desc_query) 它将不会t 更新任何表。

这是我的代码:

    $name= strip_tags($_POST['name']);
    $l_name= strip_tags($_POST['last_name']);

    $c_id = strip_tags($_POST['company_id']);
    $a_d = strip_tags($_POST['add_description']);
    $d_t = strip_tags($_POST['desc_text']);

$connect = mysql_connect('localhost','id','pass') or die ("couldn't connect!"); 

mysql_select_db('database_db') or die('could not connect to database!');   

//inserting names

$job_query=mysql_query("INSERT INTO names VALUES ('', '$name', '$l_name')");

    //inserting a new description if needed. (this is the part that ruins everything)
if($a_d == 'true'){
    $desc_query=mysql_query("INSERT INTO descriptions VALUES ('','$c_id','$d_t')");
}

【问题讨论】:

  • 你的代码很不完整,所有变量com来自哪里?
  • 尝试使用var_dump看看$a_d的值
  • @zolex- 我猜,if 条件的变量中包含的值有一些错误。
  • 这些值并不重要......无论如何,我会上传我从哪里得到它们,其中大部分来自 $_POST
  • 在第一次和第二次查询之后尝试die(mysql_error()); 之类的操作并查看输出;如果它不为空,则您的 sql 有错误,可能您的值没有被转义或其他什么...

标签: php mysql sql database forms


【解决方案1】:

您可能会遇到某些字符(例如 ' 和 ")破坏 SQL 查询的问题(更不用说打开您的应用程序以进行 SQL 注入攻击了)。

我建议像这样清理所有用户提供的数据:

$name = mysql_real_escape_string(strip_tags($_POST['name']), $connect);
$l_name = mysql_real_escape_string(strip_tags($_POST['last_name']), $connect);
...
$d_t = mysql_real_escape_string(strip_tags($_POST['desc_text']), $connect);

始终假设用户将输入可能(或可能不会)破坏您的 SQL 的古怪或恶意内容。

【讨论】:

    【解决方案2】:

    您是否尝试过回显查询,然后直接在数据库上运行它们?

    如果没有关于数据库的更多信息,我们无法真正判断查询本身是否有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      相关资源
      最近更新 更多