![](/img/trans.png)
[英]Handling MySql 'Too many connections' error on shared hosting
[英]Blank MySQL error on shared hosting
我正在对mysql,php等进行一些学习。 我使用的是共享托管计划,因此从设置更改的角度来看非常有限。
我试图通过PHP运行一个简单的mysql select命令,但我得到的只是一个空白错误
<?php
$typeID = $_GET['tid'];
//variables for the database server
$server = "localhost";
$user = "codingma_rbstock";
$pwd = "M@nL%V{%RI+h";
$db = "codingma_rbstock";
//variables for the database fields
$itemNo;
$itemNm;
$itemDesc;
$buyPr;
$sellPr;
$quan;
$dept;
//database connection
//create connection
$conn = new mysqli($server, $user, $pwd, $db);
//if the connection fails throw an error.
if ($conn->connect_error){
die("Connection Failed: " . $conn->connect_error);
}
echo "Welcome to " . $typeID . "<br>";
$sql = "select ITEM_NAME from stock where ITEM_NO='00001'";
if ($conn->query($sql) === TRUE){
$res = $conn->query($sql);
if ($res->num_rows > 0){
echo "success";
}
}else{
echo "Error: " .$sql . "<br>" . $conn->error;
}
echo $res;
?>
我检查了一下,看来好像可以正常连接到数据库了(我更改了一些帐户详细信息,以查看是否抛出了另一个错误并且确实如此)。
我确定我在这里完全看不到某些东西! 下面是错误的文本输出;
错误:从ITEM_NO ='00001'的库存中选择ITEM_NAME
谢谢你的帮助。
你的问题在这一行
if ($conn->query($sql) === TRUE){
您正在执行变量类型检查(===),则比较的结果将始终失败,因为只要您在表中有数据并且查询不会失败,则$conn->query($sql)
将不返回布尔值
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
您在此处使用SELECT,因此成功的结果将不是布尔值
尝试切换到
if ($conn->query($sql) == TRUE){
甚至最好将其完全删除
EDIT
对于该部分代码,更好的方法是:
$res = $conn->query($sql);
if ($res->num_rows > 0){
echo "success";
}
if ($res === false) {
echo "Error: " .$sql . "<br>" . $conn->error;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.