我有这些 .php 文件:
在db_functions saveData 中不运行sqliquery。它不会将参数插入数据库 - 我已经在 phpmyadmin 上测试了相同的查询(使用随机值) - 它有效 - 但在这里它没有......代码中有任何错误吗? db_config 数据是正确的 - 只是将它们更改为 xxx :D
数据库配置:
<?php
define("DB_HOST", "xxx");
define("DB_USER", "xxx");
define("DB_PASSWORD", "xxx");
define("DB_DATABASE", "xxx");
?>
数据库连接:
<?php
class DB_CONNECT {
private $conn;
// constructor
function __construct() {
}
/**
* Function to connect with database
*/
function connect() {
// import database db variables
require_once __DIR__ . '/db_config.php';
// Connecting to mysql database
$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD);
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// Selecing database
// returing connection cursor
return $this->conn;
}
}
?>
数据库函数
class DB_Functions {
private $conn;
//put your code here
// constructor
function __construct() {
include_once './db_connect.php';
// connecting to database
$db = new DB_Connect();
$this->conn = $db->connect();
}
public function saveData($name, $id) {
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
// insert user into database
$query = "INSERT INTO data(name, id) VALUES('$name','$id')";
echo $query;
$result = mysqli_query($this->conn,$query);
...}
最佳答案
你有这条线
$this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD);
其中 DB_SERVER
未定义,并且您未传递数据库名称
应该是这样
$this->conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
我在您的代码中没有发现任何其他明显的错误。 不过,我强烈建议使用准备好的语句,而不是将数据直接注入(inject)查询中。
关于php - mysqli_query 不运行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27407116/