Javascript 可能错误的mySQL查询使表单按钮消失
我猜这是因为$mysqli在函数中是一个未知对象,请尝试在函数中添加全局$mysqliJavascript 可能错误的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 . ") "
<?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);
}
?>