在我的本地/开发环境中,MySQLi查询执行正常.但是,当我在我的Web主机环境中上传它时,我收到此错误:
致命错误:在...中的非对象上调用成员函数bind_param()
这是代码:
global $mysqli;
$stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?");
$stmt->bind_param('i', $cur_id);
$stmt->execute();
$stmt->bind_result($uid, $desc);
Run Code Online (Sandbox Code Playgroud)
为了检查我的查询,我试图通过控制面板phpMyAdmin执行查询,结果是OK.
如果我使用这样的代码:
$update_result = mysqli_query( $link , $sql_update_login ) or die ('Unable to execute query. '. mysqli_error($link));
Run Code Online (Sandbox Code Playgroud)
它是否必须死亡或者您之后可以提出不同的查询?就像将错误日志写入另一个表的预定函数一样?如:
$update_result = mysqli_query( $link , $sql_update_login ) or function('$query, $error);
Run Code Online (Sandbox Code Playgroud)
'或'之后的其他选项有哪些?我没有在文档中找到它,任何线索都表示赞赏.
我一直在看这段代码一段时间,我看不出问题出在哪里.我一直在阅读整个StackOverflow,但仍无法看到我的错误.
<?php
mysqli_connect("localhost","root","","web_table");
mysql_select_db("web_table") or die(mysql_error());
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo "<p> Connection Successful!"
mysqli_query('INSERT INTO web_formitem (ID, formID, caption, key, sortorder, type, enabled, mandatory, data) VALUES (105, 7, Tip izdelka (6), producttype_6, 42, 5, 1, 0, 0)');
echo "<p>Insert successfull";
?>
Run Code Online (Sandbox Code Playgroud)
错误在第13行的某处,那就是mysqli_query('insert...
.我试图用http://www.w3schools.com/php/php_mysql_insert.asp来帮助自己,但这对我帮助不大.
我已经尝试了几天来修复我的PHP代码的这一部分,但似乎没有任何工作.
我基本上是一个超级新手.几乎在上周,我决定尝试使用PHP从头创建一个博客.这需要我学习PHP.所以,通过跟踪教程和阅读像w3schools这样的网站,我慢慢地学习了适用的PHP.
无论如何,这是我正在研究的代码的一部分:
$query = $db->prepare("SELECT post_id, title, body, date_posted, category
FROM posts INNER JOIN categories ON
categories.category_id=posts.category_id ORDER BY
post_id desc limit $start, $per_page");
$query->execute();
$query->bind_result($post_id, $title, $body, $date_posted, $category);
$author = $db->prepare("SELECT username FROM posts INNER JOIN user ON
user.user_id=posts.user_id");
print_r( $author->error );
$author->execute();
$author->bind_result($username);
Run Code Online (Sandbox Code Playgroud)
让我解释.我有3个数据库表:帖子,类别和用户.大多数帖子信息都在"帖子"中,包括category_id和user_id,但不包括类别和用户的实际名称.我从其他两个表中得到了那些.$ db使用mysqli.
上面代码的$ query部分工作得很好.$ author准备行是我遇到问题的地方.我根据$ query prepare行写了那行.
但是当我运行代码时,我得到"注意:试图获取非对象的属性." 这导致$ author-> execute()无效并产生错误:"致命错误:在非对象上调用成员函数execute()."
所以,再次,因为我是一个巨型新手,我认为修复是非常简单的,可能与我对PHP的无知有关.有没有人有任何想法或建议?在此先感谢您的帮助.
我试图使用以下脚本从表中查询数据:
//connect file
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//connect file included above - ECHO tested and it is connected as $conn
$sql = "SELECT * FROM userInfo";
$results = $conn->query($sql);
if (!$results) {
printf("Errormessage: %s\n", $conn->error);
exit;
} else {
echo $row['username'];
}
Run Code Online (Sandbox Code Playgroud)
更新 -
它现在不再试图抛出错误,似乎转到该else
部分; 但是,没有回声 - 这次拼写是正确的并且列被填充.
Plz帮助我不知道这个功能有什么问题....
$gsql = "SELECT * FROM posts WHERE group='$group_name' ORDER BY postdate DESC LIMIT 0,20";
$gquery = mysqli_query($db_conx, $gsql);
$gstatusnumrows = mysqli_num_rows($gquery);
while ($grow = mysqli_fetch_array($gquery, MYSQLI_ASSOC)) {
Run Code Online (Sandbox Code Playgroud)
它一直在说这个错误: -
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\group.php on line 3
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in D:\group.php on line 5
Run Code Online (Sandbox Code Playgroud)