PHP将带有stdclass的数组插入MySQL
这是一张热点券PHP将带有stdclass的数组插入MySQL,php,arrays,Php,Arrays,这是一张热点券 array(115) { [0]=> object(stdClass)#3 (13) { ["_id"]=> string(24) "57074056e4b03cad2f940060" ["admin_name"]=> string(5) "ramil" ["code"]=> string(10) "3596495399" ["duration"]=> int(1440)
array(115) {
[0]=>
object(stdClass)#3 (13) {
["_id"]=>
string(24) "57074056e4b03cad2f940060"
["admin_name"]=>
string(5) "ramil"
["code"]=>
string(10) "3596495399"
["duration"]=>
int(1440)
}
[1]=>
object(stdClass)#4 (13) {
["_id"]=>
string(24) "57074056e4b03cad2f94005f"
["admin_name"]=>
string(5) "ramil"
["code"]=>
string(10) "7860239069"
["duration"]=>
int(1440)
}
}
..........
..........
我在将其插入数据库时遇到问题。我刚开始使用PHP,顺便说一句,$数据是从API调用的
这是数组$data的成功内爆
var_dump ($data); //sample output above.
$array=array($data\u convert);
$value=内爆(“,$array);
echo美元价值;
如果您有$data,则必须使用以下方法循环它:
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
您有一个对象数组,因此必须输入每个对象,获取值并插入到数据库中。尝试类似的操作
<?php
...
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
foreach($data as $k => $v){
$sql = "INSERT INTO table_name (id,admin_name,code,duration) VALUES (" . $v->_id . "," . $v->admin_name . "," . $v->code . "," . $v->duration . ")";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
?>
哪个是循环-在哪里?环路在哪里?如何使用
$data
?你的问题是什么?这是成功的内爆$array=array($data\u convert)$值=内爆(“,$array);echo美元价值;loops=>我在编译代码时遇到此错误simon“您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在第1行“b03cad2f940060,ramil,35964953991440”附近使用的正确语法错误:插入到“NaD,查询是演示性的”。您必须用您的查询更改我的查询,但保留$v引用。示例:创建一个具有id、管理员名称、代码和持续时间的表。称之为“用户”。在我的SQL“table\u name”中更改并替换为“user”。如果您有自动增量id,请不要使用$v->\u id。请使用“null”
<?php
...
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
foreach($data as $k => $v){
$sql = "INSERT INTO table_name (id,admin_name,code,duration) VALUES (" . $v->_id . "," . $v->admin_name . "," . $v->code . "," . $v->duration . ")";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
?>
function insert_data($dataObj){
foreach($dataObj as $data){
if(is_object($data)){
// return field values and name as string
//something like this- (sn, answer) VALUES ([value-1],[value-2])
$fieldValueString = $this->_array_to_string($data);
$queryString = "INSERT INTO <tablename> $fieldValueString";
//Execute query
return $this->_link->query($queryString );
}
}<!-- ./foreach -->
}
public function _array_to_string($array){
//Fetch where condition in a string
$string = "";
if($array !="" && count($array) >0){
//Fetch fileds
$dataArrayField = array();
//Fetch values
$dataArrayValue = array();
foreach($filedsValue as $field => $value){
$dataArrayValue[] = $value;
$dataArrayField[] = $field;
}
$string = "( ".implode(", ", $dataArrayField)." ) VALUES ( '".implode("', '", $dataArrayValue)."' )";
}
return $string;
}