Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对sql连接感到困惑_Php_Mysql_Sql - Fatal编程技术网

Php 对sql连接感到困惑

Php 对sql连接感到困惑,php,mysql,sql,Php,Mysql,Sql,我有这个,它按ID查看表中的数据我的问题是 如果我添加了一个更新(如图所示),它不会显示在UpdateBy和update表中:我尝试加入mysql,但它只获取第二个表中的dateupdated列。这是我的第二个表,这是我的第一个表,外键是document_id,如您所见 这是我在mysql中的查询 $query = "SELECT document.document_id, document.document_name, document.document_type, document.d

我有这个,它按ID查看表中的数据我的问题是 如果我添加了一个更新(如图所示),它不会显示在UpdateBy和update表中:我尝试加入mysql,但它只获取第二个表中的dateupdated列。这是我的第二个表,这是我的第一个表,外键是document_id,如您所见

这是我在mysql中的查询

$query = "SELECT document.document_id, document.document_name, document.document_type,
   document.document_from,document.document_to,document.document_recieved, document.document_date,document.document_dater,
   document.document_status,document.document_signatories,document.document_remarks,document.document_encoded, add_update.document_date_update,
   add_update.document_update,add_update.document_updatedby FROM document LEFT JOIN add_update ON document.document_id = add_update.document_id WHERE
    document.document_id = '".$_POST["document_id"]."'";
  $result = mysqli_query($connection, $query);

我相信你必须追踪代码。首先,你能做到

print_r($result)
检查查询是否包含所有列。然后,如果它已经给出了正确的结果,请检查您的表单,检查它是否输出了正确的变量

使用参数绑定也是一种很好的做法:

$query = $mysqli->prepare('SELECT document.document_id,  
  document.document_name, 
  document.document_type, 
  document.document_from,
  document.document_to,
  document.document_recieved, 
  document.document_date,
  document.document_dater,    
  document.document_status,
  document.document_signatories,
  document.document_remarks,
  document.document_encoded,
  add_update.document_date_update, 
  add_update.document_update, 
  add_update.document_updatedby 
  FROM document 
  LEFT JOIN add_update ON document.document_id = add_update.document_id 
  WHERE
  document.document_id = ?');
$query->bind_param('s', $_POST["document_id"]);
$result = $query->execute();

你的密码是肯定的,但那不是他的问题。给出一个解决方案查询,然后讨论代码上的转义问题。请帮助我,我真的需要它。您可能认为“document_update”和“document_update”中有一些键入错误,请检查..我想,您应该使用“AND document.document_id=?”;而不是WHERE。将文档id放入“WHERE条件”中将为您提供仅与ID匹配的行的结果。当将其放入“连接条件”中时,将为您提供所有行,但是与文档ID不匹配的行将不会连接到添加文档表。@VoltzV请同时将您的mysqli连接$mysqli=new mysqli(“主机”、“我的用户”、“我的密码”、“数据库名”);在父表(即“document”表)中,我将document\u id作为主键,在子表(即“add\u update”表)中,我将document\u id作为外键。他们有匹配的文档id,但我的查询不起作用。嗨@VoltzV,你能解释一下查询不起作用的意思吗?你能给我们看看打印结果吗