我正在尝试创建一个SQL查询以将用户信息插入到数据库中.在$fname
与$lname
变量包含正确的值("约翰"和"李四"),但查询失败.这是我的代码:
$fname = $_POST['first_name'];
$lname = $_POST['last_name'];
$sql = "INSERT INTO users (fname, lname) VALUES ($fname, $lname)";
mysqli_query($conn, $sql);
Run Code Online (Sandbox Code Playgroud)
检查错误消息后,我发现此查询失败并显示错误消息
"字段列表"中的未知列"John"
如何正确地将变量包含到SQL查询中以使其在没有错误的情况下运行?
请仔细阅读问题.这通常不是愚蠢的"我的代码不起作用!!!" 题.
当我使用预期的错误运行此代码时
try {
$sth = $dbh->prepare("SELECT id FROM users WHERE name INN(?,?) ");
$sth->execute(array("I'm","d'Artagnan"));
} catch (PDOException $e) {
echo $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息
您的SQL语法中有错误...在第1行'INN('我'','d \'Artagnan')'附近
但我多年来一直认为查询和数据是分开发送给服务器的,而且绝不干涉.因此我有一些问题(虽然我怀疑有人得到答案......)
更新
mysqli
是按预期做的:它会抛出一个错误说 near 'INN(?,?)'
我有一个动态表单,允许动态添加许多字段,
我知道如何使用以下方法获取aspnet中单个字段的值:Request.Form ["myField"],但是这里我有更多字段,我不知道这些字段的数量,因为这些是动态的
字段名称是"orders []"
例如:
<form>
<input type="text" name="orders[]" value="order1" />
<input type="text" name="orders[]" value="order2" />
<input type="text" name="orders[]" value="order3" />
</form>
Run Code Online (Sandbox Code Playgroud)
在php中,我通过访问获取值作为数组$_POST['orders']
;
例如:
$orders = $_POST['orders'];
foreach($orders as $order){
//execute ...
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在c#中做到这一点?
我是Mysqli_*的新手,我收到了这些错误:
警告:mysqli_select_db()期望参数1为mysqli,字符串在第11行的D:\ Hosting\9864230\html\includes\connection.php中给出
警告:mysqli_error()期望在第13行的D:\ Hosting\9864230\html\includes\connection.php中给出1个参数0
数据库选择失败:
<?php
require("constants.php");
// 1. Create a database connection
$connection = mysqli_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$connection) {
die("Database connection failed: " . mysqli_error());
}
// 2. Select a database to use
$db_select = mysqli_select_db(DB_NAME,$connection);
if (!$db_select) {
die("Database selection failed: " . mysqli_error());
}
?>
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用WT-NMP安装cakePHP 3.0.0,但我收到此消息:
CakePHP无法连接到数据库.
由于缺少PHP扩展或未满足的依赖性,无法使用数据库驱动程序Cake\Database\Driver\Mysql
我的php.ini有这个:
extension = php_bz2.dll
extension = php_curl.dll
extension = php_gd2.dll
extension = php_imap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_pdo_mysql.dll
extension = php_pdo.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_sqlite3.dll
extension = php_openssl.dll
extension = php_fileinfo.dll
extension = php_intl.dll
Run Code Online (Sandbox Code Playgroud)
app.php有这个
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on …
Run Code Online (Sandbox Code Playgroud) 我正在使用此PDO查询从MySQL调用数据.
$sql = "SELECT itemName FROM furniture WHERE itemID = :item";
Run Code Online (Sandbox Code Playgroud)
在调用此特定itemName时,是否可以通过在同一查询中使用其itemID来获取下一个和上一个itemNames,而无需编写新查询来获取下一个和上一个itemNames?
例如,如果
itemID | itemName
___________________________
553 | Mahogani Black Chair
554 | Teak Round Table
555 | Thulang Relaxing Chair
556 | Teak Relaxing Chair
$sql = "SELECT itemName FROM furniture WHERE itemID = :item";
$stmt = $connect->prepare($sql);
$stmt->execute(array(':item'=>"554"));
$rslt = $stmt->fetchAll(PDO::FETCH_ASSOC);
Run Code Online (Sandbox Code Playgroud)
我正在寻找Teak Round Table
和Mahogani Black Chair
和Thulang Relaxing Chair
我对重复更新查询中的插入很困惑.我有MySQL表,结构如下:
如果我的table.person中存在id,或者在此表中插入新记录,我想为person更新some_text和some_other_text值.如果person_id不是PRIMARY,怎么办呢?
昨天,我了解到PHP有一种yield()
方法.我不确定它在PHP中的用处.
一位同事表示,它可以帮助SQL语句返回许多行,从而导致潜在的内存问题.我相信他在提到fetchAll()
.但是,除了使用之外fetchAll()
,还可以逐个使用fetch()
和处理行.因此,yield()
解决他所指的问题并不是关键.
我在这里错过了一些关于yield()
vs的事fetch()
吗?使用yield()
和生成器有更多好处吗?
PS:在大型应用程序中编写干净,可读和可维护的代码yield()
比使用它更容易fetch()
.
我正在寻找一种方法来测试php/mysqli连接的连接部分.我正在从Vista上的LAMP服务器迁移到Ubuntu上的相同,并且正在使mysqli工作.我知道所有正确的模块都已安装,PhpMyAdmin可以完美运行.我已经迁移了一个站点,并没有mysqli连接正常工作.我得到的错误是"在非对象上调用成员函数xxx()",当查询本身错误或查询是从错误的连接准备时,通常会弹出.我知道查询本身是好的,因为它在具有完全相同的数据库结构和数据的其他服务器上工作正常.这让我有了联系.我试着编写一个非常简单的测试连接并将其放在一个循环中,例如..
if(***connection here ***)
{ echo "connected"; }
else
{ echo "not connected"; }
Run Code Online (Sandbox Code Playgroud)
它呼应"连接",这很棒.但只是为了检查我在连接中更改了密码,以便我知道它无法连接,它仍然回显"已连接".所以,if/else测试显然不是要走的路....
我在MySQL中有这个程序(不用费心去弄清楚它的作用,只需看看光标打开的部分)
/* PROCEDURE 1 : Post notification */
DROP PROCEDURE IF EXISTS AddNotificationOnPosts;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `AddNotificationOnPosts`(arg_from_user INT(11),arg_on_post_id INT(11),arg_in_group_id INT(11))
BEGIN
DECLARE num_rows INT DEFAULT NULL;
DECLARE insert_result INT DEFAULT NULL;
DECLARE done INT DEFAULT 0;
DECLARE var_user_id INT DEFAULT NULL;
DECLARE c1 CURSOR FOR
SELECT user_id
FROM user_rights
WHERE user_rights.right = 101 AND user_rights.group_id = arg_in_group_id
ORDER BY user_id DESC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
IF(arg_from_user IS NULL OR arg_from_user = '') …
Run Code Online (Sandbox Code Playgroud)