Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 MySQL查询不是';没有被执行_Php_Mysql_Mysqli - Fatal编程技术网

Php MySQL查询不是';没有被执行

Php MySQL查询不是';没有被执行,php,mysql,mysqli,Php,Mysql,Mysqli,我有一张表格,我通过邮寄的方式从中获取数据。我还使用该数据和两个查询更新两个单独的表。我的第一个查询运行良好,它按预期将数据插入表中,我的第二个查询几乎相同,但将数据插入另一个表中,它不起作用。我的代码是这样的 // First good query is here. $selected_employee = $_POST['employees']; $date = date('y-m-d H:i:s'); $qry4 = "INSERT INTO employee_leads (emp

我有一张表格,我通过邮寄的方式从中获取数据。我还使用该数据和两个查询更新两个单独的表。我的第一个查询运行良好,它按预期将数据插入表中,我的第二个查询几乎相同,但将数据插入另一个表中,它不起作用。我的代码是这样的

 // First good query is here.
 $selected_employee = $_POST['employees'];
 $date = date('y-m-d H:i:s');
 $qry4 = "INSERT INTO employee_leads (emp_id_fk, lead_id_fk, subject_fk, 
 date) 
VALUES ('$selected_employee', '{$_GET['id']}','$subject' , '$date' )";
$result4 = mysqli_query($con, $qry4);

// second query which isn't working
$qryChosen = " INSERT INTO lead_status (lead_id_fk, buss_id_fk, emp_id_fk) 
VALUES ('{$_GET['id']}', '$userid', '$selected_employee') ";
$resultChosen= mysqli_query($con,$qryChosen);
if(!$resultChosen) {echo "Employee record error #400 "; }
似乎它也不会迭代
if(!$resultChosen)
语句,因为我没有收到关于没有对数据库执行查询的回音。谢谢

编辑我已添加此代码
$rowselected=mysqli\u fetch\u assoc($resultChosen)因为如果查询有问题,它会显示出来,并且它给了我一个错误mysqli_fetch_assoc()期望参数1是mysqli_result,给定布尔值
据我所知,当查询出错时会发生这种情况,我不确定哪里可能出错?P.S
$userid
定义在页面顶部,应该可以访问


EDIT-2添加了
echo“错误在”。mysqli_错误($con)并且它完全没有显示错误。

首先检查表格和列中的打字错误,然后尝试删除from行
11
12

<?php
// First good query is here.
 $selected_employee = $_POST['employees'];
 $date = date('y-m-d H:i:s');
 $qry4 = "INSERT INTO employee_leads (emp_id_fk, lead_id_fk, subject_fk, 
 date) 
VALUES ('$selected_employee', '{$_GET['id']}','$subject' , '$date' )";
$result4 = mysqli_query($con, $qry4);
if($result4) {
// second query which isn't working
$qryChosen = "INSERT INTO lead_status (lead_id_fk, buss_id_fk, emp_id_fk) 
VALUES ('{$_GET['id']}', '$userid', '$selected_employee')";
$resultChosen = mysqli_query($con, $qryChosen);
    if(!$resultChosen) {
    echo "Employee record error #400 ";
    }
}
?>

请不要使用不推荐的mysql\u查询。改用PDO

<?php
 $con = new PDO("mysql:host=$host;dbname=$db;", $user, $pw);

// First good query is here.
 $selected_employee = $_POST['employees'];
 $date = date('y-m-d H:i:s');
 $qry4 = "INSERT INTO employee_leads (emp_id_fk, lead_id_fk, subject_fk, 
 date) VALUES (:selected_employee, :get_id, :subject , :date )";
 $result4 = $con->execute(array(
 ":selected_employee" => $selected_employee,
 ":get_id" => $_GET['id'],
 ":subject" => $subject,
 ":date" => $date
 ));
 if($result4) {
 // second query which isn't working
 $qryChosen = "INSERT INTO lead_status (lead_id_fk, buss_id_fk, emp_id_fk) 
 VALUES (:get_id, :user_id, :selected_employee)";
 $resultChosen = mysqli_query($con, $qryChosen);
 $resultChosen = $con->execute(array(
 ":get_id" => $_GET['id'],
 ":selected_employee" => $selected_employee,
 ":user_id" => $userid
 ));
    if(!$resultChosen) {
    echo "Employee record error #400 ";
    }
 }
 $rowChosen = $resultChosen->fetch(PDO::FETCH_ASSOC);
?>

您应该检查真正的错误(如果有)。你没有这么做。还对SQL注入攻击敞开大门Bad
buss\u id\u fk
?如果不知道您遇到了什么错误,很难说…@wogsland我在文件的最顶端定义了$userid,所以它应该可以访问它没有问题吧?我正在研究如何让它报告问题。谢谢如果您的
date
列属于
DATETIME
类型,那么您的
date('y-m-dh:i:s')
失败,除非您将其存储在
VARCHAR
类型的列中。我只是想你可能想知道。查询中没有打字错误,我不知道你所说的空格是什么意思?如果这是您的意思,字符串中的空格不应使其无效。谢谢。如果不是打字错误,那么可以,空格表示您正在使用
$qryChosen=“INSERT
,因此您必须删除双引号
插入之间的空格,这样看起来就像
“INSERT
也删除
之间的空格)
结束双引号
,所以它看起来像这样(
)";这样做了,并删除了字符串开头的空格,但没有效果。谢谢您的建议。@MarwanAK那么您必须在列中缺少一些不能为空的值,请尝试
echo$qryChosen并查看在将变量INSERT回显到lead_status(lead_id_fk、buss_id_fk、emp_id_fk)值('18','72','20')时发生的情况。值18,72,20是正确的。我使用的是
mysqli
库,它不是不推荐的bro。感谢您的全面重写,我在粘贴副本时遇到了一个错误,即
}
,我必须检查代码并测试它,但我需要时间,因为我以前从未用PDO风格编写过。无论如何,用
mysqli
编写应该不会有问题,因为库很好。问题是,
$qryChosen
中的查询由于某种原因无法工作,这就是问题所在。谢谢。它仍然是sql可注入的。可能是“{$\u GET['id']}”产生了错误。请尝试“{$\u GET[“id”]}”。我从未使用过mysqli,但据我所知,它不会再出现在字符串中了。是的,我知道它是SQL可注入的。一旦一切正常,我将使用准备好的语句。尝试完全删除该变量并得到相同的结果。谢谢