我在PHP中做了一个简单的例子,目标只是将数组的值插入到数据库中。字段名称是数组键,字段值是数组值。我选择面向对象的风格进行查询,因为我正在练习面向对象。当我打开它时,问题是这样的:代码只接受数组的第一个索引,即“名称”;它应该接受四个值,因为该表由四个字段(名称,电子邮件,用户名,密码)组成。现在数据库中的结果只有名称字段有值,其余字段为空。下面是代码:foreach循环只接受数组的第一个索引
<?php
class User {
public static function insert($table, $table_fields = array()) {
if(count($table_fields)) {
foreach($table_fields as $field_name => $field_value) {
return "INSERT INTO $table ($field_name) VALUES ('$field_value')";
}
}
return false;
}
}
$connect = mysqli_connect('localhost', 'root', '', 'sample');
mysqli_query($connect, User::insert('users', array(
'name' => 'Sample Name',
'email' => '[email protected]',
'username' => 'sampleusername',
'password' => '12345'
)));
?>
我想知道什么是错我的代码,它会给我更加感激,如果你给我相应的改进建议。
第一次返回将结束函数执行。 – Phiter
你正在试图创建自己的活动记录功能,你应该查看一个已经存在的记录,比如[PHP ActiveRecord](http://www.phpactiverecord.org/) – Phiter
另外,不要构建*手动查询*,**总是**使用[准备好的语句](https://php.net/manual/mysqli.quickstart.prepared-statements.php)。 – Yoshi