![](/img/trans.png)
[英]Required (included) mysql connect script working in one script but not in another. PHP
[英]PHP Script for MYSQL working on one file, not on another
我目前有一個AngularJS應用程序,它通過鏈接到PHP腳本的工廠查詢數據庫。 以下腳本完全按計划工作,並輸出用於Angular的JSON:
<?php
function getCompanyDetails($company_id)
{
// Connect to the database.
require_once("config/connection.php");
$query = "SELECT id, header, content FROM company_details WHERE company_id = ?;";
$stmt = $conn->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param("i", $company_id);
$stmt->execute();
$data = $stmt->get_result();
while($row = $data->fetch_assoc()) {
$result[] = $row;
}
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$stmt->close();
mysqli_close($conn);
echo json_encode($result);
}
}
getCompanyDetails(1);
?>
現在,我在應用程序的其他部分中需要執行完全相同的操作(從數據庫中選擇結果),並且正在使用以下腳本(與上面的腳本幾乎相同的副本):
<?php
function getCompanyProjects($company_id)
{
// Connect to the database.
require_once("config/connection.php");
$query = "SELECT title, description FROM company_projects WHERE company_id = ?;";
$stmt = $conn->stmt_init();
if($stmt->prepare($query)) {
$stmt->bind_param("i", $company_id);
$stmt->execute();
$data = $stmt->get_result();
while($row = $data->fetch_assoc()) {
$result[] = $row;
}
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$stmt->close();
mysqli_close($conn);
echo json_encode($result);
}
}
getCompanyProjects(1);
?>
問題是,第二個腳本將不返回任何結果。 該表在數據庫中有記錄,我相信每次使用后我都會關閉連接。 我已經堅持了好一陣子了,有人對這個問題可能有什么想法嗎?
查詢SELECT title, description FROM company_projects WHERE company_id = ?;
適用於phpMyAdmin。
提前致謝。
在嘗試了fetch_assoc(), fetch_array(), mysqli_fetch_assoc()
和許多其他功能之后,將服務器重置了幾次,將echos
和var_dumps
放置在各處,我意識到所有數據都將被檢索,直到while
部分。
當我實際上在while循環中迭代var_dump
時,我看到了一個無法識別字符的小符號。 最后一個結果中有一個未轉義的報價。 刪除了這個小朋友之后, fetch_assoc()
再次開始正常工作。 問題出在實際數據上,而不是代碼上。 這兩個腳本現在都可以使用正確的數據正常工作。
謝謝各位的幫助! 在問這個問題之前,我不知道var_dump
是什么,這是一個非常有用的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.