我对 PHP 相当陌生,我正在使用 mysqli、OOP 和准备好的语句。
我的问题是这样的:
我正在尝试将用户(对象)传递给我的数据库(类)中的 Insert_user(func)。
我有 3 个类,“逻辑”、“数据”和“索引”。索引包括数据和逻辑,并启动
连接和用户。
在我的函数 (insert_user) 中,我使用数组将用户变量传递到,之前
绑定并执行我的声明。
她的是我的代码:
<?php
function insert_user($user) {
$query = "INSERT INTO user VALUES (?,?,?,?,?,?,?,?,?,?)";
$binding = 'issssiisss';
$variables = array( $user->user_id, $user->f_name, $user->l_name, $user->address, $user->city, $user->zipcode, $user->mobile_number, $user->mail, $user->pass_key, $user->pass_word);
$stmt = $this->mysqli->prepare($query);
$stmt->bind_param($binding,$variables[0],$variables[1],$variables[2],$variables[3],$variables[4],$variables[5],$variables[6],$variables[7],$variables[8],$variables[9]);
$stmt->execute();
}
?>
这是我浏览器中的 var_dump:
object(user)#1 (10) { ["user_id"]=> int(1) ["f_name"]=> string(5) "pelle" ["l_name"]=> string(5) "kanin" ["address"]=> string(7) "vænget" ["city"]=> string(6) "aaaaaa" ["zipcode"]=> int(123) ["mobile_number"]=> int(123) ["mail"]=> string(4) "fedt" ["pass_key"]=> string(3) "ert" ["pass_word"]=> string(4) "erto" }
string(10) "issssiisss"
array(10) { [0]=> int(1) [1]=> string(5) "pelle" [2]=> string(5) "kanin" [3]=> string(7) "vænget" [4]=> string(6) "aaaaaa" [5]=> int(123) [6]=> int(123) [7]=> string(4) "fedt" [8]=> string(3) "ert" [9]=> string(4) "erto" }
object(mysqli_stmt)#4 (10) { ["affected_rows"]=> int(-1) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(10) ["field_count"]=> int(0) ["errno"]=> int(0) ["error"]=> string(0) "" ["error_list"]=> array(0) { } ["sqlstate"]=> string(5) "00000" ["id"]=> int(1) }
我究竟做错了什么!?
谢谢你。
编辑:问题是将数据插入数据库。它根本行不通。当我执行时,没有数据被放入。
我认为问题在于 $stmt->bind_param 函数,并从数组中插入数据。
param_count = 10 和 field_count = 0!
编辑!2!:
好的。所以,它确实有效!我做错的是在我的 user_id 中指定一个整数值,即当我创建用户时。我的数据库对该值使用 AUTO.INCREMENT,因此它不起作用..
无论如何,谢谢你的回答。天!