問題は、multi_queryを使用して複数のテーブルを作成しようとしていることと、その2つのテーブルの2つのレジスタの直後です。コードを実行すると、DBにテーブルが作成されますが、レジスタを作成することはできません。私は単純なクエリですべてを行うと、コードは完全に機能します。私はここに何が欠けているのかわかりません...コードはここにあります:テーブルにレジスタを作成するときにmulti_queryが動作しない
if (isset($_POST['usercp']) && !empty($_POST['usercp'])) {
if (isset($_POST['passlogin']) && !empty($_POST['passlogin'])) {
$conn = mysqli_connect($host, $user, $pw, $db);
if (!$conn) {
echo "<script language='javascript'>alert('Usuario de CPanel incorrecto!!');window.location.href = 'http://here-a-page.com/';</script>";
}
else {
$sql = "CREATE TABLE usercp (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
usuario VARCHAR(30) NOT NULL
);";
$sql = $sql . "CREATE TABLE numlink (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Link VARCHAR(30) NOT NULL
);";
$sql = $sql . "CREATE TABLE login (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Validacion_Pass VARCHAR(30) NOT NULL
);";
$file = fopen("UsuarioCpanel.txt", "w");
fwrite($file, $UserCp . PHP_EOL);
fclose($file);
if ($conn->multi_query($sql)) {
$PassLogin = $_POST['passlogin'];
$consulta = " INSERT INTO usercp(usuario) VALUES('$UserCp');";
$consulta = $consulta . "INSERT INTO login(Validacion_Pass) VALUES('$PassLogin');";
if ($conn->multi_query($consulta)) {
header('location: index.php');
}
else{
echo "Ocurrio un error creando los registros";
}
}
else{
echo "Error creating table: " . $conn->error;
}
}
}
else{
echo "<script language='javascript'>alert('Debes poner el Password que utilizaras con el Login del Cloaking System');window.location.href = 'http://here-a-page.com/';</script>";
}
}
else {
echo "<script language='javascript'>alert('Debes poner tu Usuario de CPanel');window.location.href = 'http://here-a-page.com/';</script>";
}
私は似たような質問で私の問題の解決策を見つけました。 @furasは、あなたがやりたいmulti_queryの後に "while(){}"でこの問題を解決しました。何らかの理由で、multi_queryを自然に複数回実行することはできません。これを行うには、すべてのmulti_queryの後に次の行を書く必要があります。
while(mysqli_more_results($link)){
$result = mysqli_store_result($link);
mysqli_next_result($link);
}
をあなたはなぜあなただけでは、単純なクエリ溶液で保管しないで再びテーブルを作成したいと再び – gaurav
されています作品ですか? –
@ gaurav $ UserCpは自分のコードの上にあり、$ _POST []から値を取得します。このコードで私の意図は、一度だけ実行することです...それは私が取り組んでいるスクリプトのインストーラのようなものです。とにかく私はしばらくの間、問題を解決しました...何らかの理由で、multi_queryは自然に複数回実行できません。これを行うには、すべてのmulti_queryの後にこれを置く必要があります: while(mysqli_more_results($ link)){ $ result = mysqli_store_result($ link); mysqli_next_result($ link); } これは@_furasのアイデアだったので、彼はこの解決法を私のような問題に託しました。それはちょうど優れた働いた!!!。 –