gpt4 book ai didi

PHP记录未插入数据库

转载 作者:行者123 更新时间:2023-11-29 07:29:33 26 4
gpt4 key购买 nike

嗨,我是一名新的 PHP 开发人员,我刚刚开始学习它。我已经测试了我的代码,没有收到任何错误,但由于某种原因,它不会将值添加到数据库中。

  • 测试语法错误
  • $mysqli 是连接的名称
  • 使用字符串输入进行测试,仍然无法执行

作为 PHP 学习者,我还应该采取哪些其他调试步骤?

if($payment_status=='Completed'){

$txn_id_check = mysqli_query($mysqli,"SELECT `transaction_id` FROM `payment` WHERE `transaction_id`='$txn_id'");
if(mysqli_num_rows($txn_id_check)!=1){

// add txn_id to db
$query = "INSERT INTO `payment` (`transaction_id`, `payment_status`, `users_id`) VALUES(?, ?, ?)";
$statement = $mysqli->prepare($query);
$statement->bind_param('ssi',$txn_id, $payment_status, $id);
if($statement->execute()){
print 'Success! ID of last inserted record is : ' .$statement->insert_id .'<br />';
}else{
die('Error : ('. $mysqli->errno .') '. $mysqli->error);
}
$statement->close();



}

最佳答案

我想你的问题是你混合了 OO(面向对象)和过程化方式来使用 mysqli

如果您的 $mysqli 变量是通过 new mysqli(/* params here */); 创建的,那么您使用面向对象方法,不应使用 mysqli_ 前缀函数。

如果$mysqli变量是mysqli_connect(/* params here */);那么您使用过程方法,并且没有 $mysqli 对象来使用 ->

更新。

好的,正如您所说 - 您通过 new 创建一个 $mysqli 对象。然后,正如我所说,不能使用 mysqli_ 前缀函数。你应该改变

$txn_id_check = mysqli_query($mysqli,"SELECT `transaction_id` FROM `payment` WHERE `transaction_id`='$txn_id'");

$txn_id_check = $mysqli->query('Your query here');
// now $txn_id_check stores mysqli_result

还有:

if(mysqli_num_rows($txn_id_check)!=1) {

// use your mysqli_result to check number of rows
if($txn_id_check->num_rows != 1) {

关于PHP记录未插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33175051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com