Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可能错误的mySQL查询使表单按钮消失_Javascript_Php_Mysql - Fatal编程技术网

Javascript 可能错误的mySQL查询使表单按钮消失

Javascript 可能错误的mySQL查询使表单按钮消失,javascript,php,mysql,Javascript,Php,Mysql,我猜这是因为$mysqli在函数中是一个未知对象,请尝试在函数中添加全局$mysqli <?php global $mysqli; $mysqli = new mysqli("127.0.0.1", "user1", "somepassword", "myDB"); if ($mysqli -> connect_errno) { echo "Failed to connect to MySQL: (" . $mysqli -> connect_errno . ") "

我猜这是因为$mysqli在函数中是一个未知对象,请尝试在函数中添加全局$mysqli

<?php
global $mysqli;
$mysqli = new mysqli("127.0.0.1", "user1", "somepassword", "myDB");
if ($mysqli -> connect_errno)
{
    echo "Failed to connect to MySQL: (" . $mysqli -> connect_errno . ") " . $mysqli -> connect_error;
}
?>

我想这是因为$mysqli在函数中是一个未知对象,请尝试在函数中添加全局$mysqli

<?php
global $mysqli;
$mysqli = new mysqli("127.0.0.1", "user1", "somepassword", "myDB");
if ($mysqli -> connect_errno)
{
    echo "Failed to connect to MySQL: (" . $mysqli -> connect_errno . ") " . $mysqli -> connect_error;
}
?>
您有一个问题,每个php函数都有自己的作用域,除非您将此变量传递给您的函数,否则您无法处理函数外部的变量

我们在这里讨论的
$mysqli
变量

要解决这个问题,您需要使用全局变量,这被认为是一种不好的做法,或者通过将变量作为参数传递,如下所示:

<?php
include_once ('/var/www/db/connection.php');

function php_func() {
    global $mysqli;
    for ($i = 0; $i <= 25000; $i++) { 
        $num = (rand(1,1000));
        echo "Number #" .$i . "\t ------   " . $num;
        echo "<br>";

        $queryInsertNum = "INSERT INTO myDb.myTable(number) VALUES ('$num');";
        $result = $mysqli -> query($queryInsertNum); 
    }
}
?>

这将把我们带到另一个问题上,你在混合和误解

您调用php函数的方式如下:

php_func($mysqli);
你有一个问题,每个php函数都有它自己的作用域,你不能处理函数外部的变量,除非你把这个变量传递给你的函数

我们在这里讨论的
$mysqli
变量

要解决这个问题,您需要使用全局变量,这被认为是一种不好的做法,或者通过将变量作为参数传递,如下所示:

<?php
include_once ('/var/www/db/connection.php');

function php_func() {
    global $mysqli;
    for ($i = 0; $i <= 25000; $i++) { 
        $num = (rand(1,1000));
        echo "Number #" .$i . "\t ------   " . $num;
        echo "<br>";

        $queryInsertNum = "INSERT INTO myDb.myTable(number) VALUES ('$num');";
        $result = $mysqli -> query($queryInsertNum); 
    }
}
?>

这将把我们带到另一个问题上,你在混合和误解

您调用php函数的方式如下:

php_func($mysqli);


您是否有访问错误日志的权限,并且可以用来查看mysql抱怨的内容?可能您只需更改
$queryInsertNum=“INSERT INTO myDb.myTable(number)值(““$num.””);”
。可能是您在数据库中插入了文本
$num
,而不是number@JCalcines不,那条线很好用。是mySQLi导致了这个问题。您是否有访问错误日志的权限,并且可以使用它来查看mysql抱怨的内容?可能您只需要更改
$queryInsertNum=“INSERT INTO myDb.myTable(number)值(““$num.””);”
。可能是您在数据库中插入了文本
$num
,而不是number@JCalcines不,那条线很好用。问题出在mySQLi上,就是这样,但是您需要停止使用全局变量。我认为问题在于
include_once('/var/www/db/connection.php')?您是否尝试添加全局设置?@Melvita是的,仍然是全局设置same@tony9099我将向您解释,就是这样,但是您需要停止使用全局变量。我认为问题在于
include_once('/var/www/db/connection.php')?您是否尝试添加全局设置?@Melvita是的,仍然是全局设置same@tony9099我会向你解释的太棒了
url:'phpfunc.php?get=data',
为什么这个文件在AJAX下,因为我的php函数在同一个文件中,而不是外部phpi不想让它变得复杂,这取决于你——更推荐的是——将你的代码分成相关的部分,正如你所说的,你可以将你的AJAX代码分开,hasan,为了简化我的琐碎任务,我将把代码放在同一页上,你能相应地调整答案吗?我很感激。给出的答案是您想要的,只需将
phpfunc.php
更改为您当前的文件名,不要忘记嵌入此处列出的jquery源代码,Hassan,
是否应该
GET
?太棒了
url:'phpfunc.php?get=data',
为什么这个文件在AJAX下,因为我的php函数在同一个文件中,而不是外部phpi不想让它变得复杂,这取决于你——更推荐的是——将你的代码分成相关的部分,正如你所说的,你可以将你的AJAX代码分开,hasan,为了简化我的琐碎任务,我将把代码放在同一页上,你能相应地调整答案吗?我很感激。给出的答案是您想要的,只需将
phpfunc.php
更改为您当前的文件名,并且不要忘记嵌入此处列出的jquery源代码,Hassan,
是否应该是
GET
<script type="text/javascript">
function on_callPhp1()
{
    $.ajax({
        url: 'phpfunc.php?get=data', // change this to whatever your file is
        type: 'GET',
        success: function (data) {
            document.getElementById('phptext').innerHTML = data;
        }
    });
}
</script>


<form action="" method="POST">
    <input type="button" value="Get Numbers" onclick="on_callPhp1()"/>
</form>
<div id="phptext"></div>

<?php

function php_func($mysqli) {    
    for ($i = 0; $i <= 25000; $i++) { 
        $num = (rand(1,1000));
        echo "Number #" .$i . "\t ------   " . $num;
        echo "<br>";

        $queryInsertNum = "INSERT INTO myDb.myTable(number) VALUES ('$num');";
        $result = $mysqli -> query($queryInsertNum); 
    }
}

if (isset($_GET['get']) && $_GET['get'] == 'data') {
    include_once ('/var/www/db/connection.php');
    php_func($mysqli);
}
?>