mysqli不执行SQL,没有错误消息

时间:2015-04-20 20:35:45

标签: php mysql mysqli

我正在尝试编写一个非常简单的“Hello World!”程序使用PHP和MySQL。

在我添加行之前一切正常,“$ rs = $ db-> query($ sql);”然后我得到一个空白的屏幕。

我做错了什么? 谢谢!

以下代码:

<?
$user = 'root';
$password = 'root';
$database = 'grc';
$host = 'localhost';
$port = 3306;

$link = mysqli_init();
$db = mysqli_real_connect($link, $host, $user, $password, $database, $port);

if (mysqli_connect_errno()) {
    die('Failed to connect to MySQL: ' . mysqli_connect_error());
}

printf('asdf\n\n');

$sql = 'SELECT productname FROM product WHERE productid=1';

$rs = $db->query($sql);
if (!$rs) {
    printf("%s\n", $db->error);
    exit();
}
printf('1sdfasdf');
?>
<html>
    <head>Hello world!</head>
    <body>Hello WORLD!!</body>
</html>

1 个答案:

答案 0 :(得分:0)

我明白了。

首先,通过编辑php.ini来打开错误。

其次,出现的错误是: &#34;致命错误:在布尔值&#34;

上调用成员函数query()

这是因为这一行:

$db = mysqli_real_connect($link, $host, $user, $password, $database, $port);

将$ db变为true / false。

第三,我用这个替换了代码:

$user = 'root';
$password = 'root';
$database = 'grc';
$host = 'localhost';

$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
        die('Failed to connect to MySQL: ' . $conn->connect_error);
}       

$sql = 'SELECT productname FROM grc.product WHERE productid=1';

$rs = $conn->query($sql);
if ($rs->num_rows > 0) {
        while ($row=$rs->fetch_assoc()) {
                echo "productname: " . $row["productname"] . "<br />";
        }
} else {        
        echo "Zero results.";
} 
$conn->close();

它有效。

没有使用mysqli_real_connect()或其他一些最新的方法,但是它有效,我使用的是面向对象的mysqli,这对我来说已经足够了。

感谢大家的回复。