我的php有问题。以下代码生成错误“PHP警告:mysqli_close()期望参数1为mysqli,在包含mysqli_query
的行上给出[...]”<html>
<head>
<?php
$table = "prjsuggestions";
/$mysqli = NULL;
if(!empty($_POST['posttext'])){
$pnameempty = empty($_POST['postname']);
$ynameempty = empty($_POST['name']);
if($pnameempty || $ynameempty){
}
else{
$mysqli = new mysqli("localhost", "progclub", "", "progclub");
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
//successful query normally occurs here but code fails w/ or /wo it.
}
}
else{
printf("No information posted.");
}
?>
<title>Bucknell Programming Club</title>
</head>
<body>
<span id="posts">
<?php
$offset = 0;
$query = "SELECT * FROM {$table}";
$result = mysqli_query($mysqli, $query);
if($result !== FALSE){
//while(($post = mysqli_fetch_assoc($result)) !== NULL){
echo mysqli_num_rows($result);
$post = mysqli_fetch_assoc($result);
$author = $post['name'];
printf("Author: %s\n", $author);
echo "<br />";
printf("Post title: %s\n", $post['title']);
echo "<br />";
printf("%s\n", $post['text']);
echo "<hr />";
//}
}
else printf("oh nooo!");
mysqli_free_result($result);
mysqli_close($mysqli);
?>
</span>
</body>
</html>
请注意,所有查询都已检出并在phpmy中正常工作,并且原始代码包含一个先前的查询,该数据将数据添加到'base,这也绝对有效。
我已经尝试了静态和全局的各种组合,我已经在变量范围的PHP页面上看了一下,唉我在这个上下文中并不完全理解它(特别是考虑到我无法使我的代码工作)。有人可以告诉我这里的不同范围吗?我认为不应该有任何!!
答案 0 :(得分:3)
查看 documentation (特别是示例1)。有一些类似于你的例子。
以下内容应该有效,它与您的代码类似:
请注意mysqli_query()
的第一个参数实际上是您的变量$mysqli
。你可能试图在那里放些东西。
此外,请务必检查您的连接,如下面的代码所示:
<html>
<head>
<?php
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");
?>
</head>
<body>
<?php
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* Use $mysqli */
if (mysqli_query($mysqli, "/* ... MySQL goes here... */") === TRUE) {
/* Success! */
}
mysqli_close($mysqli);
?>
</body>
</html>
答案 1 :(得分:0)
OOOOOOOOOOoooooooooooooooooohh。 D'哦。是啊。范围。也许我应该有更多关于变量只在写入数据时初始化的事实。哎呀。谢谢你们。