、私は私のforeach文と間違っているかを把握しようとしています。私は1日以上の間、エラーを見つけることに取り組んできましたが、時間がなくなりました。このプログラムは、json配列を解析し、それをmysqliデータベースに投稿することになっています。PHP> foreachのために供給無効な引数()
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$a = print_r(var_dump($GLOBALS),1);
echo htmlspecialchars($a);
$servername = "#";
$username = "#";
$password = "#";
$dbname = "#";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
echo "Connection Successful : ";
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// Read JSON file
$jsondata = file_get_contents('scripts/AUDIT_DIR/report.json');
echo "JSON File Read : ";
// Convert and Loop
$item = json_decode($jsondata, true);
echo "JSON File Decoded : ";
foreach($item as $arr)
{
$id = $arr["id"];
$hostname = $arr["hostname"];
$ip = $arr["ip"];
$package = $arr["package"];
$publisher = $arr["publisher"];
$origin = $arr["origin"];
$version = $arr["version"];
$size = $arr["size"];
$sql = "INSERT INTO testtable(id, hostname, ip, package, publisher, origin, version, size)
VALUES ('10', '$hostname', '$ip', '$package', '$publisher', '$origin', '$version', '$size')";
if (mysqli_query($conn, $sql))
{
echo "New record created successfully : ";
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
}
?>
'$ item'が配列することになっているときにエラーを示す
例が起こります。あなたはそれをチェックしましたか? –
[リトルボビー]は(http://bobby-tables.com/)*** [スクリプトがSQLインジェクション攻撃のリスクがある。]と言います(http://stackoverflow.com/questions/60174/how-can- I-防ぐ-SQLインジェクション・イン・PHP)*** [MySQLiを]は[準備](http://en.wikipedia.org/wiki/Prepared_statement)文について学ぶ(http://php.net/manual /en/mysqli.quickstart.prepared-statements.php)。 [文字列をエスケープする](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string)でも安全ではありません! [それを信じていないのですか?](http://stackoverflow.com/q/38297105/1011527) –
あなたは$アイテムでのvar_dumpを行うと、ここで、出力を投稿することができますか? – vuryss