MySQL选择查询在终端中工作。在php准备语句中失败
想要:获取MySQL表作为PHP变量 错误:MySQL选择查询在终端中工作。在php准备语句中失败,php,mysql,database-connection,prepared-statement,cloud9-ide,Php,Mysql,Database Connection,Prepared Statement,Cloud9 Ide,想要:获取MySQL表作为PHP变量 错误:致命错误:在第90行的/home/ubuntu/workspace/List Machines/functions.php中对非对象调用成员函数execute() 在浏览器中呈现页面时会出现此错误 第90行(在错误中引用)是这样的:$stmt->execute() 相关代码(为了便于阅读,请稍微精简): 此时,SQL表machines中填充了3行伪数据。变量$query中描述的SQL语句,后跟一个按照终端中的预期生成这3行 我尝试了各种PHP方法来检测
致命错误:在第90行的/home/ubuntu/workspace/List Machines/functions.php中对非对象调用成员函数execute()
在浏览器中呈现页面时会出现此错误
第90行(在错误中引用)是这样的:$stmt->execute()代码>
相关代码(为了便于阅读,请稍微精简):
此时,SQL表machines
中填充了3行伪数据。变量$query
中描述的SQL语句,后跟一个代码>按照终端中的预期生成这3行
我尝试了各种PHP方法来检测$connection和$stmt变量在错误发生之前和之后的所有代码点上可能出现的错误。所有的结果都是空白的
echo var_dump($stmt)的结果代码>:/home/ubuntu/workspace/List Machines/functions.php:90:bool(false)
我还尝试向来宾用户授予完全权限
我所能说的是,在这一点上似乎有些东西失败了:$stmt=$connection->prepare($query)代码>但我不确定故障到底是什么。SQL已签出,连接似乎有效。这是一个小问题。变量命名错误
“看起来你在新的mysqli中使用了$c9而不是$database(…语句–“从外观上看,你打错了。”
更改:
$database = "c9";
$connection = new mysqli($servername,$username,$password,$c9);
致:
(对于$connection
,您使用了$c9
而不是$database
)var\u dump($stmt)
在问题行之前。请查看$connection->prepare($query);
返回的内容。/home/ubuntu/workspace/List Machines/functions.php:90:bool(false)
看起来您在新mysqli中使用了$c9
而不是$database
(…
statementHahaha“MySQL Select query在终端中工作”我假设您是从控制台运行PHP脚本,它工作了,但在通过浏览器调用时不工作:)
mysql> describe machines;
+-------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+----------------+
| machine_id | int(11) | NO | PRI | NULL | auto_increment |
| manufacturer | varchar(64) | YES | | NULL | |
| model | varchar(64) | YES | | NULL | |
| model_year | int(11) | YES | | NULL | |
| type | varchar(32) | YES | | NULL | |
| warranty_type | varchar(32) | YES | | NULL | |
| warranty_end_date | int(11) | YES | | NULL | |
| vendor | varchar(32) | YES | | NULL | |
| purchase_date | int(11) | YES | | NULL | |
| verified_date | int(11) | YES | | NULL | |
| retired_date | int(11) | YES | | 0 | |
| serial | varchar(64) | YES | | NULL | |
+-------------------+-------------+------+-----+---------+----------------+
12 rows in set (0.00 sec)
$database = "c9";
$connection = new mysqli($servername,$username,$password,$c9);
$database = "c9";
$connection = new mysqli($servername,$username,$password,$database);