【发布时间】:2015-12-11 16:23:45
【问题描述】:
在我的 PHP 代码中,我很容易将记录写入我的数据库,但由于某种原因,我无法读取任何内容。我的 PHP 代码是:
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM companies";
if ($conn->query($sql) === TRUE)
{
echo "query success";
while($row = $result->fetch_assoc())
{
echo "ID: " . $row["ID"]. " - Name: " . $row["name"]. "<br>";
}
}
else
{
echo "query failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
$sql = "INSERT INTO companies (name)
VALUES ('mycompany')";
if ($conn->query($sql) === TRUE)
{
echo "insert success";
}
else
{
echo "insert failure";
echo "Error: " . $sql . "<br>" . $conn->error;
}
当我运行它时,我从浏览器得到的输出是:
query failureError: SELECT * FROM companies
insert success
我尝试了 $sql 字符串中的撇号、插入符号、引号的变体。我试过在 HeidiSQL 中运行这个查询,它工作正常。有什么想法我哪里出错了吗?有什么更基本的建议,我可以尝试缩小问题的根源?
谢谢!
【问题讨论】:
-
您实际上并没有绑定查询的结果,
if ($result = $conn->query($sql))。但这不是问题的根源,请查看mysqli_error和error_reporting(-1);。 -
您应该考虑使用一个条件,以便选择运行,或者插入运行,或者插入在选择之后运行,或者选择在插入之后运行。现在,您的代码正在重用同一个变量,而没有对该变量何时被赋予新值进行任何控制。