gpt4 book ai didi

php - PHP中的mysql_query参数错误

转载 作者:行者123 更新时间:2023-11-30 23:58:57 25 4
gpt4 key购买 nike

Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select




$connection = mysql_connect('localhost', 'username', 'password') or die('Database connection failed:' . mysql_error());                                

mysql_select_db('db_test', $connection) or die('Database connection failed: ' . mysql_error());

$var = '';

switch ($var) {
case 'dosomething':
break;
default:
default_func();
}

function default_func() {
if (isset($_POST['submit'])) {
$query = "INSERT INTO `table_test` (`some_field`) VALUES ('test')";
$result = mysql_query($query, $connection) or die(mysql_error());

header('Location: index.php?submit=success');
}
}

mysql_close($connection);




我已经收到“ mysql_query()期望参数2在给定错误的情况下为资源null”。

我确保将$ connection分配给数据库连接资源id的值,因此这似乎不是问题。不知道为什么$ connection的值给我一个NULL。关于为什么会发生此错误的任何解释?

最佳答案

$ connection变量在default_func中不可见。如果要成为它,只需在此处将其声明为global:

function default_func() {
global $connection;
...
}


但是,当代码变得稍微复杂一些时,全局变量可能会导致难以诊断的错误。隐藏的全局状态(如果将第二个参数完全保留为 mysql_query,则使用的是全局状态)更糟。您最好将连接传递给函数:

switch ($var) {
case 'dosomething':
break;
default:
default_func($connection);
}

function default_func($conn) {
if (isset($_POST['submit'])) {
$query = "INSERT INTO `table_test` (`some_field`) VALUES ('test')";
$result = mysql_query($query, $conn) or die(mysql_error());

header('Location: index.php?submit=success');
}
}

关于php - PHP中的mysql_query参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com