2013-12-16 50 views
-3

我有两个phpMyAdmin的 PHP页面中工作我使用它,基于一个简单的HTML表单更新表一个非常简单的查询:我的查询工作,所以为什么这个错误?

UPDATE customers SET customer_name='$name', customer_email='$email', customer_tel='$tel' WHERE customer_id = $id LIMIT 1

这将更新表完美 - 我可以看到,在phpMyAdmin,和我有一个if声明检查报告没有什么问题受影响的行数,但我仍然得到:

mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given

Sugges确定查询不正确。是什么赋予了?

+0

你能指出其中u使用mysqli_fetch_array()的代码? – Bhadra

+0

请添加整个代码,因为它可能与此查询无关,而是您使用的功能。 –

+0

'mysqli_query'告诉你什么?您可能也想看看准备好的陈述,因为名为“O'Connor”的人会破坏您的查询。 – andrewsi

回答

4

一个UPDATE查询不会返回记录。

在你的UPDATE之后做一个SELECT查询,然后重复这些结果。

2

更新查询会导致mysqli_query根据更新成功或失败返回truefalse。你不应该叫它mysqli_fetch_array就可以了。

+1

当然啊! Doofus。谢谢。 – ElendilTheTall

+0

将来,请确保'var_dump'报告为意外事件。这应该向你展示'bool(true)',这会帮助你解决问题;) –

0

您必须将结果集传递给mysqli_fetch_array();

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 


if ($result = $mysqli->query("UPDATE customers SET customer_name='$name', customer_email='$email', customer_tel='$tel' WHERE customer_id = $id")) { 
    // if success do something here 
} 

你的情况,你不应该调用mysqli_fetch_array()

检查这个答案:mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in