Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
MYSQL+;PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;SQL语法中的错误";使用数组和变量更新表时_Php_Mysql_Mysqli - Fatal编程技术网

MYSQL+;PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;SQL语法中的错误";使用数组和变量更新表时

MYSQL+;PHP:“您必须遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他有关法律法规。”;SQL语法中的错误";使用数组和变量更新表时,php,mysql,mysqli,Php,Mysql,Mysqli,我是一名新开发人员,在接受抄送付款后,我试图用修改后的用户数据更新MYSQL表。 我已经获取了所有需要更新或插入到每个表中的值,看起来这些参数都是正确的。。。但是表没有更新,我收到以下错误消息: Notice: Undefined variable: msqli in /home/ban50/public_html/app/return.php on line 74 Notice: Trying to get property of non-object in

我是一名新开发人员,在接受抄送付款后,我试图用修改后的用户数据更新MYSQL表。 我已经获取了所有需要更新或插入到每个表中的值,看起来这些参数都是正确的。。。但是表没有更新,我收到以下错误消息:

Notice: Undefined variable: msqli in /home/ban50/public_html/app/return.php on line 74

Notice: Trying to get property of non-object in
                     /home/public_html/app/return.php on line 74

Error No: 0 - MySQL error You have an error in your SQL syntax; check the
               manual that corresponds to your MySQL server version for the
                         right syntax to use near '' at line 1 

Query: UPDATE `users` SET membership_id='1', mem_expire='' WHERE username=Blev80
#0 {main}
我使用的代码如下:

这是标准的“直接”变量。
$\u POST[]
变量是我作为(数组)从支付网关接收的变量:

然后我尝试插入购买的结束日期-我想在这里使用
strotime(+1个月)
逻辑:

$duration = $_POST['li_0_recurrence']; //recurrence calculation
$eDate =strtotime('+$duration'); //the END date of the purchase
$memexpire = $eDate  ; // my reference for the table (this may be a redundant step but it helps me to think in this way
出于测试目的,我回显了结束日期:

echo $eDate;
我假设上面的工作正常,但我无法验证发生了什么,因为我在下面的代码中似乎有问题:

$data = array(
              'txn_id' => time(),
              'membership_id' => $mname,
              'user_id' => $muid,
              'rate_amount' => $amch,
              'tax' => '0',
              'coupon' => '0',
              'total' => $amtot,
              'ip' => $_SERVER['REMOTE_ADDR'],
              'date' => "NOW()",
              'pp' => "2CO",
              'currency' => 'ZAR',
              'status' => 1);

if ($_POST['credit_card_processed'] === 'Y') {



//connect to DB 


$mysqli = new mysqli("$host", "$dbusername", "$password", "$db_name");


//build queries


$query = "UPDATE `users` SET membership_id='$mname', mem_expire='$eDate'  WHERE username=$appusername";

$mins = "INSERT INTO payments ($data)";


//run queries


$mysqli->query($query);

$mysqli->query($mins);


//error checking


if ($mysqli->error) {
try {    
    throw new Exception("MySQL error $mysqli->error <br> Query:<br> $query", $msqli->errno);    
} catch(Exception $e ) {
    echo "Error No: ".$e->getCode(). " - ". $e->getMessage() . "<br >";
    echo nl2br($e->getTraceAsString());
}
}

else {
echo "Thanks database updated";
}


}
else {
echo "Credit card payment failed";
}`
$data=array(
'txn_id'=>time(),
“会员身份”=>$mname,
'user_id'=>$muid,
“费率金额”=>amch美元,
“税”=>“0”,
“优惠券”=>“0”,
“总计”=>$amtot,
“ip”=>$\u服务器[“远程地址”],
'日期'=>“现在()”,
“pp”=>“2CO”,
“货币”=>“南非兰特”,
“状态”=>1);
如果($\u POST['credit\u card\u processed']='Y'){
//连接到数据库
$mysqli=newmysqli(“$host”、“$dbusername”、“$password”、“$db_name”);
//生成查询
$query=“UPDATE`users`SET membership\u id='$mname',mem\u expire='$eDate',其中username=$appusername”;
$mins=“插入付款($data)”;
//运行查询
$mysqli->query($query);
$mysqli->query($min);
//错误检查
如果($mysqli->error){
试试{
抛出新异常(“MySQL错误$mysqli->error
查询:
$Query”,$msqli->errno); }捕获(例外$e){ echo“错误号:”..e->getCode()。“-”$e->getMessage()。“
”; echo nl2br($e->getraceAssString()); } } 否则{ echo“感谢数据库更新”; } } 否则{ 回显“信用卡支付失败”; }`
所以我有两个问题

1) 第74行的错误通知引用了我的错误检查组件

throw new Exception("MySQL error $mysqli->error <br> Query:<br> $query", $msqli->errno);
抛出新异常(“MySQL错误$mysqli->error
查询:
$Query”,$msqli->errno);
2) MYSQL语法有问题,表没有更新

  • 我尝试过用反勾号括住表引用,但仍然得到了消息
  • 我已尝试将
    mysqli->error
    更改为
    mysqli(error)

  • 我已经听过很多这样的问题和答案,并在必要的地方加入了代码

--老实说,我不知道还能尝试什么——我已经看了两天相同的80行代码:)


任何帮助或反馈都将不胜感激

您的更新查询
$query=“update
用户
设置成员身份\u id='$mname',mem\u expire='$eDate',其中username=$appusername”
转换为

UPDATE `users`
    SET membership_id='mname', mem_expire='2045-08-09'
    WHERE username=some_username
------------------------------------^

您的
$appusername
周围缺少
'



这里的参数不需要引号,因为没有串接

$mysqli = new mysqli("$host", "$dbusername", "$password", "$db_name");

在引号
中写入用户名,其中username='“$appusername.”“;
并将
msqli
更改为
mysqli
$query = "UPDATE `users` SET `membership_id` = '{$mname}', `mem_expire` = '{$eDate}' WHERE `username` = '{$appusername}"
$mysqli = new mysqli("$host", "$dbusername", "$password", "$db_name");